2016-09-29 36 views
0

我試圖用lapply將一個新列添加到一堆數據集中。但是我的代碼拋出了一個錯誤。lapply中的賦值會引發錯誤。 [R]

下面是我的代碼

z <- data.frame(a=rep("z",20)) 

datasets_list <- list(z,z,z,z) 

lapply(datasets_list, function(k){k$New_Column <<- NA}) 

但是運行此返回錯誤Error in k$New_Column <<- NA : object 'k' not found

回答

2

我們可以使用transform創建一個新的列

datasets_listN <- lapply(datasets_list, transform, New_Column = NA) 

如果我們需要改變的數據集在全球環境中,使用list2env(但最好是保持data.frame S IN一list)。假設,在data.frame對象是 'DF1', 'DF2', 'DF3', '東風4型'

names(datasets_listN) <- paste0("df", 1:4) 
list2env(datasets_listN, envir = .GlobalEnv) 

注:這裏的OP使用相同的數據集 'Z',以顯示例子。