R 中按组汇总表

May*_*you 3 r dataframe

考虑以下数据框:

 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))
Run Code Online (Sandbox Code Playgroud)

第一列为第二列中的每个因素定义一个顶级组。第三列是每个因素的标准差值。

我想生成一个仅包含组的汇总表,每个组的标准差定义为:

  • 如果 group1 包含因子 f1 和 f2,并且 vol(f1) 和 vol(f2) 分别是因子 f1 和 f2 的标准差,则 group1 的标准差为:

    std(group1) = sqrt[vol(f1)^2 + vol(f2)^2]

是否有任何简单的方法来创建汇总表,其中vol每个组的数据都是使用此自定义函数计算的?

任何帮助,将不胜感激!谢谢。

Bra*_*sen 5

良好措施的基本解决方案。

by(df,df$group,function(x) sqrt(sum(x$vol^2)))
Run Code Online (Sandbox Code Playgroud)

如果你需要它看起来更漂亮:

as.table(df,df$group,function(x) sqrt(sum(x$vol^2))))

df$group
    group1     group2     group3 
0.04472136 0.14142136 0.12000000 
Run Code Online (Sandbox Code Playgroud)