我还在学习R.亲切的,我想了解这个功能:
sapply(M[,-1], function(x) x^2)
其中M是矩阵。看起来它正在调整M中的每个元素。有人能提供一个关于这条线如何运作的简短例子吗?
谢谢
答案 0 :(得分:1)
根据用例,R中的apply
函数族具有不同的类型。
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