考虑以下数据帧:
df <- data.frame(group = c("group1", "group1", "group2", "group2", "group2", "group3"), factor = paste("factor", 1:6, sep=""), vol = seq(from = 0.02, length.out = 6, by = 0.02))
第一列为第二列中的每个因子定义一个顶级组。第三列是每个因子的标准偏差值。
我想生成仅包含组的摘要表,并将每个组的标准差定义为:
如果group1约束因子f1和f2,而vol(f1)和vol(f2)分别是因子f1和f2的标准偏差,则group1的标准偏差为:
std(group1) = sqrt[vol(f1)^2 + vol(f2)^2]
有没有什么简单的方法可以创建摘要表,其中每个组的
vol
是使用此自定义函数计算的?任何帮助,将不胜感激!谢谢。
最佳答案
我可以使用ddply
函数提出一个解决方案:
# require(plyr)
ddply(df, .(group), summarize, std = sqrt(sum(vol^2)))
# group std
# 1 group1 0.04472136
# 2 group2 0.14142136
# 3 group3 0.12000000
关于r - R中的分组汇总表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21737850/