微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何计算每行的标准偏差?

如何解决如何计算每行的标准偏差?

我正在尝试计算每行的标准差

输入(values_for_all)的示例:

1  0.35 0.35 4.33 0.09 4.17 0.16 9.90 15.25 0.16 2.38 2.55 8.14 0.16 NA 0.16
2  8.75 3.22 7.34 0.56 2.43 0.23 1.20 8.45 1.26 NA NA 1.24 0.16 2.34 0.36

代码

values_for_all[values_for_all == ''] <- NA
values_for_all[] <- lapply(values_for_all,as.numeric)
values_mean <- rowMeans(values_for_all,na.rm=TRUE) 

#calculating standard deviation per row 
SD <- rowSds(values_for_all,na.rm=TRUE)
SD

第一部分(values_mean)完美运行。不幸的是,带有SD的部分没有。

解决方法

apply lets you apply a function to all rows of your data

apply(values_for_all,1,sd,na.rm = TRUE)

要计算每列的标准偏差,请用1替换2

,

您正在使用matrixStats,这意味着该函数应应用于矩阵。因此,将as.matrix包裹在您的数据框中。

matrixStats::rowSds(as.matrix(dat),na.rm=TRUE)
# [1] 4.515403 3.050903
,

您可以使用apply

apply(df,sd)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。