【问题标题】:Reference a dataframe from a list in r从 r 中的列表中引用数据框
【发布时间】:2015-09-23 10:27:21
【问题描述】:

我有多个数据框,我想在其中添加一个包含年份的新列。而不是一次做这个,我想使用一个 for 循环和一个列表来引用它们。

这是我的代码(列表已缩小以节省空间):

我的.list

for(i in 1:length(my.list)){my.list[[i]]$Year

不幸的是,它没有向每个数据框添加 Year 列,而是给了我以下警告:

警告信息:

1:在 subject.list[[i]]$Year

2:在 subject.list[[i]]$Year

3:在 subject.list[[i]]$Year

4:在 subject.list[[i]]$Year

并将 $Year 添加到列表中。任何人都可以就我应该如何做到这一点提供任何建议吗?

谢谢

【问题讨论】:

  • my.list 是字符向量列表,而不是 data.frames 列表。也许没有引号? my.list <- list(Accounting.and.Finance, Aeronautical.and.Manufacturing.Engineering, Agriculture.and.Forestry, American.Studies)
  • 谢谢罗兰。这会为列表中的每个数据框添加一个年份列,但不会为原始的单个数据框添加一个年份列。关于如何使用该列表来更新各个数据框的任何想法?
  • 没有理由这样做。这些 data.frames 应该在一个列表中开始。也许它们甚至应该合并到一个 data.frame 中。
  • 好的,我知道我现在需要做什么了;使用列表中的数据框,然后我可以将它们从列表中写入 .csv 文件。感谢您的帮助。

标签: r list dataframe


【解决方案1】:

您的示例很难使用,因此我重新构建了它,

my.list <- list(
Accounting.and.Finance  <- data.frame(A=seq(1,10), B=seq(11,20),C=seq(21,30)),
Aeronautical.and.Manufacturing.Engineering  <- data.frame(A=seq(1,10), B=seq(11,20),C=seq(21,30)),
Agriculture.and.Forestry  <- data.frame(A=seq(1,10), B=seq(11,20),C=seq(21,30)),
American.Studies  <- data.frame(A=seq(1,10), B=seq(11,20),C=seq(21,30))
)

可以使用 lapply 函数添加年份列,

my.list  <- lapply(my.list, cbind, Year=seq(2001,2010))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多