Назначение имен переменных столбцов для переменных фреймов данных

Я просматриваю список фреймов данных, 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])) ‹- c("Date", dfList[i]): не удалось найти функцию "get‹-"

Сам names(get(dfList[i])) работает и возвращает исходные имена столбцов. Кроме того, c("Date", dfList[i]) работает.

Любая идея, как я могу обойти ошибку, которую я получаю?

Спасибо!


person ch-pub    schedule 19.02.2016    source источник


Ответы (2)


Пытаться:

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

Следует отметить, что обычно следует избегать get и assign, и, вероятно, лучше назначать имена столбцов при создании фреймов данных.

person slamballais    schedule 19.02.2016

Если вы не против использовать муррр:

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 = ""))))
person andrewelamb    schedule 19.02.2016