对于给定的功能,sapply做了什么

时间:2017-04-26 00:16:36

标签: r

我还在学习R.亲切的,我想了解这个功能:

sapply(M[,-1], function(x) x^2) 

其中M是矩阵。看起来它正在调整M中的每个元素。有人能提供一个关于这条线如何运作的简短例子吗?

谢谢

1 个答案:

答案 0 :(得分:1)

根据用例,R中的apply函数族具有不同的类型。

1.如果要将函数应用于矩阵的行或列,则使用apply()函数。

  1. 当您想依次将一个函数应用于列表的每个元素并返回列表时,我们使用lapply()函数。

  2. 如果要依次将一个函数应用于列表的每个元素,但是想要一个向量而不是列表 - 我们使用sapply()函数。

  3. 在你的情况下,是的,它会对所有值进行平方并返回一个向量,除了矩阵的第一列,见下文:

    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