【发布时间】:2021-10-01 07:02:12
【问题描述】:
我正在尝试将一个列表放入每个数据表单元格中,其中列表来自其他列的值。我不想明确输入每列的名称。基本上我想重做以下工作示例,而不必明确引用 V1、V2:
# Create a data table as an example:
dat <- data.table(V1 = c(1:4), V2 = c('A','B','C','D'))
print(dat)
V1 V2
1: 1 A
2: 2 B
3: 3 C
4: 4 D
现在我创建一个包含行值列表的新变量 V3:
dat[, id := rownames(dat)] # Creating unique id per row
dat[, V3 := list(list(list(V1,V2))), by = 'id']
print(dat)
V1 V2 id V3
1: 1 A 1 <list[2]>
2: 2 B 2 <list[2]>
3: 3 C 3 <list[2]>
4: 4 D 4 <list[2]>
并且我们可以看到V3的第一个元素是正确的,由列表1,A组成:
unlist(dat$V3[[1]])
[1] "1" "A"
如何在不必明确列出 V1 和 V2 的情况下进行此过程(实际上,在我的代码中,我必须为 60 多个变量执行此操作(即从 60 个变量的行中获取列表),所以我不想要写 list(list(list(V1, V2, V3, ..., V60)?
【问题讨论】:
标签: r list data.table apply lapply