gpt4 book ai didi

r - 多个 data.table 列到一列向量

转载 作者:行者123 更新时间:2023-12-05 08:24:54 26 4
gpt4 key购买 nike

我有一个像这样的数据表:

tab = data.table(V1 = c('a', 'b', 'c'),
V2 = c('d', 'e', 'f'),
V3 = c('g', 'h', 'i'),
id = c(1,2,3))

从该表的 V1、V2、V3 列中,我想为第 i 行获取一个向量 c(V1[i],V2[i], V3[i])

我可以像这样获得所需向量的列表:

lapply(1:tab[, .N], function(x) tab[x, c(V1, V2, V3)])

哪个返回:

[[1]]
[1] "a" "d" "g"

[[2]]
[1] "b" "e" "h"

[[3]]
[1] "c" "f" "i"

但我认为这可能很慢,而且不太像 data.table。

另外,我想概括一下,我没有明确键入 V1、V2、V3,而是传递一个列名向量以这种方式处理。

最佳答案

试试这个?

> asplit(unname(tab[, V1:V3]), 1)
[[1]]
"a" "d" "g"

[[2]]
"b" "e" "h"

[[3]]
"c" "f" "i"

关于r - 多个 data.table 列到一列向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69853917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com