是否有最快捷的方式在R中制作如下列表? 数字1到18,两个元素分组。
assign
答案 0 :(得分:2)
我们可以使用split
gl
执行此操作
unname(split(v1, as.integer(gl(length(v1), 2, length(v1)))))
或使用%/%
创建分组变量
unname(split(v1, (seq_along(v1)-1) %/% 2))
v1 <- 1:18
答案 1 :(得分:2)
OP已经要求最快的方式来制作列表。我想&#34;快速&#34;是指键入代码而不是执行速度。
可以使用dt1[dt2, column1 := i.column1, on = .(index_column)]
dt1
# index_column column1 column2
#1: 12 dog 482
#2: 17 cat 391
#3: 29 penguin 567
#4: 34 elephant 182
#5: 46 bird 121
和lapply()
的组合创建向量列表:
seq()
这种方法的更简洁的变体是
lapply(seq(1, 18, by = 2), seq, length.out = 2)
在我看来,这比分裂需要引入分组变量要简单得多。