为可变数据帧分配变量列名

时间:2016-02-19 23:37:50

标签: r dataframe assign

我循环遍历数据框列表dfList,所有这些都是Nx2,我想将每个数据框的列名更改为c("Date", dfList[i])。例如:

dfList <- c("df1", "df2", "df3")

for(i in 1:length(dfList)){
   names(get(dfList[i])) <- c("Date", dfList[i])
}

这会导致错误:

  

名称错误(get(dfList [i]))&lt; - c(“Date”,dfList [i]):     找不到功能“get&lt; - ”

names(get(dfList[i]))本身可以工作,并返回原始列名。此外,c("Date", dfList[i])有效。

我知道如何处理我收到的错误吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试:

for(i in 1:length(dfList)){
    temp <- get(dfList[i])
    names(temp) <- c("Date", dfList[i])
    assign(dfList[i],temp)
}

应该注意的是,您通常应该避免getassign,并且在创建数据框时分配列名称可能会更好。

答案 1 :(得分:0)

如果你可以使用purrr:

library(purrr)

df_list <- list(data.frame(1:10, ncol = 2), 
                data.frame(1:20, ncol = 2),
                data.frame(1:30, ncol = 2))


map2(df_list, 1:length(df_list), function(x, y) setNames(x, c("Date",  paste('df', y, sep = ""))))