在lappy-R中使用cbind获取错误
让我有一个数据帧列表(l1)和一个由整数组成的向量(v1) 我想把v1和l1的每个元素结合起来。让我们: l1[[1]]:在lappy-R中使用cbind获取错误,r,R,让我有一个数据帧列表(l1)和一个由整数组成的向量(v1) 我想把v1和l1的每个元素结合起来。让我们: l1[[1]]: head1 ----- 4 3.2 4.1 l1[[2]]: head2 ----- 1.2 0.9 3.2 让 v1: 因此,结果列表(l2)应为: l2[[1]]: head3 head1 ----- ----- 5 4 4 3.2 7 4.1 l2[[2]]: head3 head2 -----
head1
-----
4
3.2
4.1
l1[[2]]:
head2
-----
1.2
0.9
3.2
让
v1:
因此,结果列表(l2)应为:
l2[[1]]:
head3 head1
----- -----
5 4
4 3.2
7 4.1
l2[[2]]:
head3 head2
----- -----
5 1.2
4 0.9
7 3.2
我使用以下代码:
l2<-lapply(l1, function(i) cbind(v1,l1[[i]]))
为什么会出现这个错误?我将非常高兴能得到任何帮助。非常感谢。我们可以使用
Map
Map(cbind, l1, v1)
如果“v1”是向量
Map(cbind, l1, list(v1))
或者用lappy
lapply(seq_along(l1), function(i) cbind(v1, l1[[i]]))
或者使用transform
创建新列
lapply(l1, transform, head3=v1$head3)
注意:假设“v1”是一个数据帧
OP代码中出现错误,因为它正在通过“l1”循环。“l1”的每个元素都是一个“data.frame”。所以,我们可以将其用于子集。或者,我们应该循环遍历“l1”序列,并通过索引将“l1”子集化,或者直接传递“l1”并创建列
lapply(seq_along(l1), function(i) cbind(v1, l1[[i]]))
lapply(l1, transform, head3=v1$head3)