遍历数据帧

时间:2019-06-12 10:05:14

标签: r loops

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

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

1 个答案:

答案 0 :(得分:1)

正如jogo在评论中所说,在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
}