我想將多個空列添加到多個數據框。我知道爲1個數據幀執行此操作的代碼是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)
我沒有收到錯誤消息,但是這兩行代碼也沒有添加空列。
您沒有將結果賦給全局環境中的符號,所以它們只存在於sapply調用中,然後標記爲垃圾回收。儘管如此,'sapply'函數不會改變原始數據幀。歡迎使用函數式編程。 – 2015-01-15 18:18:36
還有一個額外的問題,我不承認,那就是'EmptyVariables'函數的返回值是NA。它應該被定義爲'< - function(df){df [,namevector] < - NA; df}' – 2015-01-15 18:38:57