Vin*_*oti 2 r parameter-passing sapply
我有一个数据集,我通过列绑定使用包中的cbindX函数创建gdata.此函数允许我绑定具有不同行数的列.因此,NA当特定列中没有值时会引入.现在,我想计算每列的标准偏差.我试过用
sapply(dataset,sd)
Run Code Online (Sandbox Code Playgroud)
这将返回具有值的所有行的列的标准偏差以及NA具有较少行的列的标准偏差.我尝试使用函数的na.rm参数sd:
sapply(dataset,sd(na.rm=T))
Run Code Online (Sandbox Code Playgroud)
并收到错误消息
Error in is.data.frame(x) : argument "x" is missing, with no default
Run Code Online (Sandbox Code Playgroud)
例如:
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))
Run Code Online (Sandbox Code Playgroud)
如何使用该sapply函数计算标准偏差?
你应该阅读?sapply手册.下面带有一些额外参数的sapply示例:
sapply(allcolscomb, sd, na.rm=TRUE)
sapply(allcolscomb, function(x) sd(x, na.rm=TRUE))
Run Code Online (Sandbox Code Playgroud)