R:尽管有NA值,但计算data.frame中cols的标准偏差

时间:2016-06-14 08:08:11

标签: r

早上好, 我得到了很多数据,我必须用它来计算。有25列(变量),每列包含数千个值。但也缺少价值观。 我用

计算了平均值
colMeans(df, na.rm = TRUE)

如何计算每列的sd并忽略NA值?

4 个答案:

答案 0 :(得分:6)

你可以尝试,

apply(df, 2, sd, na.rm = TRUE)

由于apply的输出是矩阵,并且您很可能必须转置它,因此更直接,更安全的选择是使用lapplysapply,如@ docendodiscimus,

sapply(df, sd, na.rm = TRUE)

答案 1 :(得分:3)

如果我们转换为matrix,则可以使用colSds中的matrixStats

library(matrixStats)
colSds(as.matrix(df), na.rm=TRUE) 

或者我们可以使用summarise_each

中的dplyr
library(dplyr)
df1 %>%
    summarise_each(funs(sd(., na.rm=TRUE)))

答案 2 :(得分:0)

不推荐使用功能summarise_each(),下面是使用dplyr的最新示例:

df1 %>% summarise_all(funs(sd(., na.rm = FALSE)))

答案 3 :(得分:-1)

  

sd(variablenname,na.rm = TRUE)

这对我有用。将“ variablename”替换为您使用的变量。