早上好, 我得到了很多数据,我必须用它来计算。有25列(变量),每列包含数千个值。但也缺少价值观。 我用
计算了平均值colMeans(df, na.rm = TRUE)
如何计算每列的sd并忽略NA值?
答案 0 :(得分:6)
你可以尝试,
apply(df, 2, sd, na.rm = TRUE)
由于apply
的输出是矩阵,并且您很可能必须转置它,因此更直接,更安全的选择是使用lapply
或sapply
,如@ 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”替换为您使用的变量。