attach(airquality)
s <- split(airquality, airquality$Month)
如果我運行[R編程Lapply
lapply(s, colMeans(s[,c("Ozone","Solar.R","Wind")]))
的錯誤出現。它說不正確的維數。
lapply(airquality, function(x)colMeans(x))
也顯示相同的錯誤。
lapply(s, function(x)colMeans(s[,"Ozone","Solar.R","Wind"])
此代碼工作得很好。
但是:
f<-function(x){
colMeans(x[,c("Ozone","Solar.R","Wind")])}
f(s) #error incorrect dimensions
class(s) # class of s is list
f(airquality) #gives mean of each column
是function()
創建尺寸是多少?如果是那麼爲什麼lapply
在airquality
不起作用?
能否請您檢查您的打開和關閉括號?一團糟。 –
(1)'lapply(s,colMeans(s [,c(「Ozone」,「Solar.R」,「Wind」))不起作用,因爲它只是錯誤的,參見'lapply'。 (空格,函數(x)colMeans(x))'拋出一個錯誤,因爲你試圖在向量上計算'colMeans'('airquality'的列被強制轉換爲沒有尺寸的向量)(3)'function'沒有創建維度 - 在您的工作示例中,您的函數應用於列表's'中的元素,每個元素都是'data.frame',因此可以計算出'colMeans'。 – jbaums
爲了澄清,'lapply'對'X'的每個元素應用一個函數,'s'的每個元素都是一個'data。frame',而'airquality'的每個元素都是一個向量(data.frame的元素就是它的列)。要使用'colMeans',你需要列。 – jbaums