【问题标题】:How to assign and dynamically change the name of a dataframe in R in a loop如何在循环中分配和动态更改R中数据框的名称
【发布时间】:2020-09-24 19:15:19
【问题描述】:

您好我正在尝试在具有不同名称的循环中创建数据帧,分配给它们的是来自循环内另一个数据帧的过滤器

这是我目前的代码

for (i in 1:nrow(data_s_y_revenue)){
  
  name_y <- data_s_y_revenue$year[i]
  
  data_y_y <-filter(data_y, year==name_y)
  
  
}

name_y 是一个变量,当它循环时,它会获得一个年份值,2018、2019、2020 等,因为代码现在是数据框 data_y_y 每次都被重写,我想结束with 是一种变量名称在其名称上具有name_y 变量值的方式,并且我以与年份一样多的数据帧结尾,例如,如果我只有 2019 年和 2020 年,我将以 2 结尾名称为 2020_data_y_y2019_data_y_y 的数据框以及这些年份的过滤器值。

感谢您的帮助。

一些数据示例 data_s_y_revenue 数据:

year 
2018
2019

data_y 数据:

year   value value2
2018   1     4
2018   2     4
2019   3     2
2019   3     2

预期结果将是 2 个名为 2019_data_y_y2020_data_y_y 的数据帧,其中包含过滤后的值

【问题讨论】:

  • 请提供一些示例数据和预期输出(向我们展示您希望作为输出的结构/数据)。我敢肯定有比使用循环更好的方法
  • 你可以看看assign
  • @Waldi 我能够根据您的建议实现它。

标签: r


【解决方案1】:

在Waldi的建议下,我能够解决它

for (i in 1:nrow(data_s_y_revenue)){
  
  name_y <- data_s_y_revenue$year[i]
  
  name_y1 <- paste("data_y_y",name_y, sep="_")
  data_y_y <-filter(data_y, year==name_y)
  
  assign(name_y1, data_y_y)
  
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 2011-09-15
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多