【问题标题】:Loop over data frames循环数据帧
【发布时间】:2019-06-12 10:05:14
【问题描述】:

我正在从多个横截面创建一个面板,因此我需要用年份标记横截面(在附加横截面之前)。更具体地说,我有以下形式的数据框:df2000、df2001、df2002 ...,并且对于每个这样的数据框,我需要创建一个变量“Year”,它是常数并且等于当前年份(即 2001 年2001 年等)。为了做到这一点,循环多个数据帧的最佳方法是什么?更具体地说,如何创建执行以下操作的循环:

df2000["Year"]<-2000  
df2001["Year"]<-2001  
df2002["Year"]<-2002  
.  
.
.

【问题讨论】:

  • 最好将数据框df2000、df2001、df2002...放在一个列表中。

标签: r loops


【解决方案1】:

正如 jogo 在 cmets 中所说,最好在 list 上下文中处理您的数据帧。否则,您可以像这样使用get()assign()

years = c("2000","2001","2002")  # vector containing the years
for (i in years){
    aux = get(paste0("df",i))    # get the variable from the environment (e.g. df2000)
    aux["Year"] = i              # update the "Year" field
    assign(paste0("df",i),aux)  # assign it again to the global environment
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-20
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2013-05-05
    • 2013-07-12
    相关资源
    最近更新 更多