Я хочу добавить несколько пустых столбцов в несколько фреймов данных. Я знаю, код для этого для 1 dataframe df[,namevector] <- NA
(other question). Namevector - это вектор, который содержит имена пустых переменных, которые необходимо добавить. У меня есть список нескольких фреймов данных, поэтому я подумал, что следующий код будет делать трюк.Добавление пустых столбцов в несколько фреймов данных
a <- data.frame(x = 1:10, y = 21:30)
b <- data.frame(x = 1:10, y = 31:40)
c <- list(a,b)
namevector <- c("z","w")
EmptyVariables <- function(df) {df[,namevector] <- NA}
sapply(X = c, FUN = EmptyVariables)
У меня нет сообщения об ошибке, но эти 2 строки кода также не добавляют пустые столбцы.
Вы не присвоили результаты символу в глобальной среде, поэтому они существовали только внутри этого 'sapply' и затем были помечены для сбора мусора. Однако функция 'sapply' НЕ изменила исходные данные. Добро пожаловать в функциональное программирование. –
Была дополнительная проблема, которую я не узнал, и это было то, что возвращаемое значение из функции «Пустые переменные» было NA. Он должен быть определен как '<- function (df) {df [, namevector] <- NA; df} ' –