如何计算每行的标准偏差?
How to calculate standard deviation per row?
我正在尝试计算每行的标准偏差
输入示例(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
:
apply(df, 1, 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
我正在尝试计算每行的标准偏差
输入示例(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
:
apply(df, 1, 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