使用sapply时如何使用函数的参数?

时间:2015-05-04 18:45:34

标签: r parameter-passing sapply

我有一个数据集,我使用cbindX包中的gdata函数通过列绑定创建。此函数允许我绑定具有不同行数的列。因此,当特定列中没有值时,会引入NA。现在,我想计算每列的标准偏差。我尝试使用

sapply(dataset,sd)

这将返回具有值的所有行的列的标准偏差,并为具有较少行的列返回NA。我尝试将na.rm参数与sd函数一起使用:

sapply(dataset,sd(na.rm=T))

并收到错误消息

Error in is.data.frame(x) : argument "x" is missing, with no default

例如:

  firstcol <- matrix(c(1:150),ncol=1)
    secondcol <- matrix(c(1:300),ncol=1)
     thirdcol <- matrix(c(1:450),ncol=1)
      fourthcol <- matrix(c(1:600),ncol=1)
        fifthcol <- matrix(c(1:30),ncol=1)
         sixthcol <- matrix(c(1:30),ncol=1)
          seventhcol <- matrix(c(1:30),ncol=1)      


library(gdata)
  allcolscomb <- data.frame(cbindX   (firstcol,secondcol,thirdcol,fourthcol,fifthcol,sixthcol,seventhcol))      

 names(allcolscomb) <- c("1stcol","2ndcol","3rdcol","4thcol","5thcol","6thcol","7thcol")      


        sapply(allcolscomb,sd)

      sapply(allcolscomb,sd(na.rm=T))

如何使用sapply函数计算标准偏差?

2 个答案:

答案 0 :(得分:5)

您应该阅读?sapply手册。下面是一些额外参数的例子:

sapply(allcolscomb, sd, na.rm=TRUE)
sapply(allcolscomb, function(x) sd(x, na.rm=TRUE))

答案 1 :(得分:1)

试试这个。

sapply(allcolscomb,sd, na.rm = TRUE)
应用族函数中的

语法是(data,fun,...)。这三个点是&#34;省略号&#34;,它们用于存放传递给apply函数的函数的参数。