據我瞭解,在使用r時,使用lapply等函數而不是循環(在其他面向對象的語言中使用的頻率更高)會更加優雅。然而,當我試圖用命令執行簡單的任務時,我無法理解語法,並且犯了愚蠢的錯誤。例如:lapply的正確實現
我有一系列使用的loop.The以下虛擬dataframes充分說明數據從CSV文件加載dataframes的:
x <- c(0,10,11,12,13)
y <- c(1,NA,NA,NA,NA)
z <- c(2,20,21,22,23)
a <- c(0,6,5,4,3)
b <- c(1,7,8,9,10)
c <- c(2,NA,NA,NA,NA)
df1 <- data.frame(x,y,z)
df2 <- data.frame(a,b,c)
我首先生成數據幀的名單(data_names-我在加載csv文件時執行此操作),然後只需對列進行求和。我當然嘗試不起作用:
lapply(data_names, function(df) {
counts <- colSums(!is.na(data_names))
})
我當然可以用列表(我從長遠來看,實現這一可能更好),但是從一個教學點,我想了解lapply更好。
非常感謝任何指針
你想在你的函數中使用'df'而不是'data_names' ... – Justin
+1爲可重複的例子 –