Z = data.frame(var1 = c(1,2,3,4,5), var2 = LETTERS[1:5])
testfun <- function(x){
print(x) # prints the data
# but how to get names of the list coming in?
return(NULL)
}
res = lapply(Z, testfun)
我想訪問testfun中的變量「var1」和「var2」。如何在testfun中檢索這些變量?樂博甚至傳遞了這些信息嗎? colnames(x)
不起作用。如何檢索使用lapply傳遞給函數的列表的名稱
有了'lapply',你傳遞單獨的列的功能。在這種情況下,我不確定變量名是否有意義。除非,你想根據變量名來操作'Z',在這種情況下,我會做'lapply(名字(Z),FUN = function(x,my.df){},my.df = Z)'。另一種選擇是使用'mapply(Z,names(Z),FUN = function(x,y){...})'。 –
也許(恐怖!:-))寫一個'for'循環。對於(1中的j:長度(Z)){print(Z [[j]]);打印(名稱(Z)[j])}' –
謝謝羅馬。這就是羅蘭指出的,我知道我可以做到這一點。但我不確定是否通過複製(如果它在每個調用中複製)傳遞一個大的Z到testfun。 Yup Carl。 Yup Carl。可以做到這一點,:)存儲在一個env中,並從testfun調用它。只是想保持我的代碼非常精簡,並儘可能地在函數和函數調用中進行操作。這是一個非常大的生產級代碼庫,並且有助於提高可讀性。 – user1971988