У меня есть несколько кадров данных. Каждый из них имеет одинаковый формат. Как это:переименовать столбец в dataframe с использованием имени переменной R
A B C
1 -0.02299388 0.71404158 0.8492423
2 -1.43027866 -1.96420767 -1.2886368
3 -1.01827712 -0.94141194 -2.0234436
Я хотел бы изменить название третьей колонки - C - так, что она включает в себя часть, если имя переменного имени, связанную с кадром данных.
Для переменных df_elephant
фрейма данных должен выглядеть следующим образом:
У меня есть функция, которая изменит имя столбца:
rename_columns <- function(x) {
colnames(x)[colnames(x)=='C'] <-
paste('C',
strsplit (deparse (substitute(x)), '_')[[1]][2], sep='.')
return(x)
}
Это работает со своими кадрами данных. Тем не менее, я хотел бы предоставить список кадров данных, так что мне не нужно многократно вызывать функцию вручную. Если я использую lapply
как так:
lapply(list (df_elephant, df_horse), rename_columns)
Функция переименовывает кадры данных со NA
, а не частью имени переменной.
[[1]]
A B C.NA
1 -0.02299388 0.71404158 0.8492423
2 -1.43027866 -1.96420767 -1.2886368
3 -1.01827712 -0.94141194 -2.02344361
[[2]]
A B C.NA
1 0.45387054 0.02279488 1.6746280
2 -1.47271378 0.68660595 -0.2505752
3 1.26475917 -1.51739927 -1.3050531
Есть ли способ, которым я предоставляю список фреймов данных для моей функции и производить желаемый результат?