Я пытаюсь использовать lapply в списке фреймов данных; но не удается правильно передать параметры (я думаю).Использование lapply для изменения имен столбцов списка фреймов данных
Список кадров данных:
df1 <- data.frame(A = 1:10, B= 11:20)
df2 <- data.frame(A = 21:30, B = 31:40)
listDF <- list(df1, df2,df3) #multiple data frames w. way less columns than the length of vector todos
вектор с именами столбцов:
todos <-c('col1','col2', ......'colN')
Я хотел бы изменить имена столбцов с помощью lapply:
lapply (listDF, function(x) { colnames(x)[2:length(x)] <-todos[1:length(x)-1] } )
но это Безразлично вообще не изменяйте имена. Я не передаю сами кадры данных, а что-то еще? Я просто хочу изменить имена, а не возвращать результат на новый объект.
Заранее спасибо, стр.
не будет работать из-за вызова * R в по значению * – jogo
Просто добавьте 'x' до конца' lapply (listDF, функция (х) {COLNAMES (х) [2: длина (х)] < -todos [1: length (x) -1]; x}) '. Ваша функция в письменном виде не имеет возвращаемого значения. –
Не связано с вопросом, но я думаю, что '1: length (x) -1' является общей ошибкой (иногда не вредной). Правильная строка: '1: (length (x) -1)' (beware priority!) – nicola