做我仍然在學習R.請,我想了解這個功能:什麼sapply對於給定函數
sapply(M[,-1], function(x) x^2)
其中M是一個矩陣。它看起來像是對M中的每個元素進行平方。有人可以提供這條線如何運作的簡要例子嗎?
謝謝
做我仍然在學習R.請,我想了解這個功能:什麼sapply對於給定函數
sapply(M[,-1], function(x) x^2)
其中M是一個矩陣。它看起來像是對M中的每個元素進行平方。有人可以提供這條線如何運作的簡要例子嗎?
謝謝
的apply
系列函數中的R是根據使用情況的不同類型。
1.如果要將函數應用於矩陣的行或列,則使用apply()
函數。
當你想一個函數應用於又將列表中的每個元素,並得到一個列表,我們使用lapply()
功能。
如果您想依次將函數應用於列表中的每個元素,但您想要一個矢量而不是列表 - 我們使用sapply()
函數。
你的情況,上面是它的正方形的所有值,並返回一個矢量,除了矩陣的第一列,見下圖:
M <- matrix(seq(10,25), 4, 4) # random 4 by 4 matrix
[,1] [,2] [,3] [,4]
[1,] 10 14 18 22
[2,] 11 15 19 23
[3,] 12 16 20 24
[4,] 13 17 21 25
M[,-1]
[,1] [,2] [,3]
[1,] 14 18 22
[2,] 15 19 23
[3,] 16 20 24
[4,] 17 21 25
sapply(M[,-1], function(x) x^2)
[1] 196 225 256 289 324 361 400 441 484 529 576 625
第三個不是100%正確的。 'sapply()'將返回一個列表**或**一個向量,具體取決於它的輸入(例如長度不均勻的列表元素)。 –
@ Rich,好的 - 謝謝你的澄清! – Pb89
它的平方的每一個元素在'M',除了第一列'-1'。這也是毫無意義的,因爲你可以用'M [, - 1]^2'來代替,而不用'sapply'。 – thelatemail