如何向列表中的每个数据集添加新列

时间:2018-05-31 02:45:51

标签: r

我看过一些类似的问题,但他们并没有真正帮助过。

我有一个包含4个数据帧的列表,我想为4个数据帧中的每一个添加一列。

下面是我尝试过的一些命令。 它们只会产生4个载体的列表(只是多样性)。

abundance_tables<-lapply(abundance_tables,function(tab) tab$diversity<-diversity(tab) )
abundance_tables<-mapply(function(tab) tab$diversity<-diversity(tab),abundance_tables,SIMPLIFY = F )

感谢任何帮助。

感谢

1 个答案:

答案 0 :(得分:2)

您不提供样本数据,因此我生成的样本list为4 data.frame

lst <- lapply(1:4, function(x) data.frame(one = LETTERS[1:4], two = 1:4))

我们在data.frame中的每个list添加第三列。

lapply(lst, function(x) { x$three = letters[11:14]; x })
#[[1]]
#  one two three
#1   A   1     k
#2   B   2     l
#3   C   3     m
#4   D   4     n
#
#[[2]]
#  one two three
#1   A   1     k
#2   B   2     l
#3   C   3     m
#4   D   4     n
#
#[[3]]
#  one two three
#1   A   1     k
#2   B   2     l
#3   C   3     m
#4   D   4     n
#
#[[4]]
#  one two three
#1   A   1     k
#2   B   2     l
#3   C   3     m
#4   D   4     n

请注意,我们需要返回x,以获取添加了列的data.frame