【问题标题】:how to add a new column to each dataset in a list如何向列表中的每个数据集添加新列
【发布时间】:2018-05-31 02:45:51
【问题描述】:

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

我有一个包含 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 )

感谢任何帮助。

谢谢

【问题讨论】:

    标签: r


    【解决方案1】:

    您没有提供样本数据,所以我生成了一个样本 list,共 4 个 data.frames。

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

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

    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。

    【讨论】:

    • 太棒了。谢谢,工作。我不知道我们必须返回 x
    • 或者lapply(lst, cbind, three=letters[11:14]),如果你想避免匿名函数。
    猜你喜欢
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 2018-05-17
    • 2021-08-30
    相关资源
    最近更新 更多