如何根据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中的百分比计算平均值和标准差的主要内容,如果未能解决你的问题,请参考以下文章