如何根据R中的百分比计算平均值和标准差

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据R中的百分比计算平均值和标准差相关的知识,希望对你有一定的参考价值。

这是我的数据:

df1<-read.table(text= " Group L1 L2 L3 L4 l5
Q 0% 10% 0% 70% 20%
K 20% 20% 20% 10% 30%", header=True

Q和k的L1乘1,L2乘2,L3乘,L4乘4和L5乘5

我想获得下表:

Group L1 L2 L3 L4 l5 Mean SD
Q      0% 10% 0% 70% 20%    0.8 1.19
K      20% 20% 20% 10% 30%  0.62 0.51

注:我有100行,这是我的样本的一部分,以显示问题的目的。非常感谢您的帮助。

答案

您可以做:

df1[-1] <- lapply(df1[-1], function(x) as.numeric(sub('%', '', x)))
temp <- as.matrix(sweep(df1[-1], 2, 1:5, `*`))
df1$Mean <- rowMeans(temp)/100
df1$Sds <- matrixStats::rowSds(temp)/100
#Or to keep it in base R
#df1$Sds <- apply(temp, 1, sd)/100
df1

#  Group L1 L2 L3 L4 l5 Mean     Sds
#1     Q  0 10  0 70 20 0.80 1.19164
#2     K 20 20 20  0  0 0.24 0.26077
另一答案

您可以做:

df1[-1] <- lapply(df1[-1], function(x) sub('%', '', x))
temp <- as.matrix(sweep(df1[-1], 2, 1:5, `*`))
df1$Mean <- rowMeans(temp)/100
df1$Sds <- matrixStats::rowSds(temp)/100

以上是关于如何根据R中的百分比计算平均值和标准差的主要内容,如果未能解决你的问题,请参考以下文章

如何计算给定均值和标准差的正态分布中的概率?

现有函数来组合 R 中的标准差?

如何计算/归一化零均值和单位方差

我正在尝试计算 R 中每年的标准差和平均回报

如何有效地计算pyspark中的平均值和标准差

为data.frame中的多个变量按组计算平均值和标准差