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

标签 r parameter-passing sapply

我有一个数据集,它是使用 gdata 包中的 cbindX 函数通过列绑定(bind)创建的。此函数允许我绑定(bind)具有不同行数的列。因此,当特定列中没有值时,将引入 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 函数计算标准偏差?

最佳答案

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

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

关于r - 使用 sapply 时如何使用函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30037649/

相关文章:

string - 删除R中字符串中位置的字符?

c++ - 在 C++ 中将局部变量传递给函数的最佳方法

javascript - JS继承原型(prototype)时如何传递参数?

r - sapply - 保留列名称

r - 使用 sapply 的列表和矩阵

r - stat_smooth 未显示在绘图上

r - 如何在R中将一列拆分为两列

R:了解省略号 (...) 如何在嵌套函数中工作,以及 iit 如何不工作

r - 让 match.call() 与 *apply 和 plyr 一起工作? (重新 : Referencing a dataframe recursively)

正则表达式删除所有内容,但从 R 中的字符串中删除表情符号?