calculate_stats <- function(x) {
non_missing_values <- na.omit(x)
if (length(non_missing_values) >= 1) {
sd_val <- sd(non_missing_values, na.rm = TRUE)
se_val <- sd_val / sqrt(length(non_missing_values))
} else {
sd_val <- NA
se_val <- NA
}
return(c(sd_val, se_val))
}
result <- t(sapply(df, calculate_stats))
print(result)
此代码导致此警告消息: 警告信息: 在 var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm = na.rm) 中: 通过强制引入的 NA 我真的很无知,请帮帮我。
我想知道我的错误原因,并且很乐意学习并再次尝试。
Rui 的评论应该有帮助!
我的 2 美分:我假设你想学习 R,但如果你只对 SD 和 SE 感兴趣,你也可以运行:
# uncomment next line if psych is not installed
# install.packages("psych")
library(psych)
describe(df)
这将为您提供不同的统计数据,包括 sd 和 se。此外,它还显示哪些变量不是数字(带有星号 * 的变量);在计算统计数据之前,它们会被转换为数字。如果您只想显示 sd 和 se,只需随后过滤列即可。