【问题标题】:Need an R function to get data frames from for loop需要一个 R 函数来从 for 循环中获取数据帧
【发布时间】:2020-05-13 19:41:11
【问题描述】:

我有一个函数给出给定年份的数据框。 yr1995=yr(1995) 给出一个数据框。这里 yr 是函数。现在我想获取 1993 年到 2019 年的数据帧。

for (i in c(1993:2019)) {
  year=yr(i)

}

此代码仅保存 2019 年。我想要一个按年命名的数据框,2019 年的名称为“year2019”,2018 年的名称为“year2018”,依此类推。

【问题讨论】:

  • 您在每次迭代时都会覆盖 year 变量,因此只会保存最后一个值。
  • 这就是我想要更改的内容,但对如何分别保存每个迭代感到困惑。如果可能的话,给我一些代码来分别保存迭代。谢谢。
  • year = lapply(1993:2019, yr)
  • dww,谢谢。此代码在单个列表中提供所有数据帧。我需要再次手动保存它,这就是我正在寻求帮助的原因。我希望将数据框分别保存为“Year1995”、“year1996”。

标签: r dataframe for-loop


【解决方案1】:

最好将数据框本身称为:

my_years <- df$years == 1983:1999 df[my_years]

如果您想使用此功能,请尝试更改

yearyear[i]

【讨论】:

    【解决方案2】:

    您正在尝试做的事情(变量名的动态分配)不是好的做法。这是另一种选择,将数据框保存在列表中(正如用户 dww 已评论的那样)。

    year = lapply(1993:2019, yr)
    

    之后,您可以更改列表元素的名称

    names(year)=paste0("year",1993:2019)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多