R 如何从因子子集中获取统计数据?

R 如何从因子子集中获取统计数据?,r,R,使用by我可以根据因子列获得所需列的统计信息 例如,如果我想知道在iris数据框中,每个物种的Sepal.Width/Sepal.Length的比率,我会这样做: by(iris$Sepal.Width/iris$Sepal.Length, iris$Species, mean) iris$Species: setosa [1] 0.6842483 ------------------------------------------------------------ iris$Species

使用
by
我可以根据因子列获得所需列的统计信息

例如,如果我想知道在iris数据框中,每个物种的Sepal.Width/Sepal.Length的比率,我会这样做:

by(iris$Sepal.Width/iris$Sepal.Length, iris$Species, mean)
iris$Species: setosa
[1] 0.6842483
------------------------------------------------------------ 
iris$Species: versicolor
[1] 0.4676804
------------------------------------------------------------ 
iris$Species: virginica
[1] 0.4533956
到目前为止还不错。现在,问题是,我如何才能做到相同,但只为一个子集的水平。e、 只有刚毛和花色

我有一个包含数千个因素的复杂数据框架。我正在玩一点表格,以便根据不同的统计数据创建因子子集。然后我想回到我的原始data.frame,为我想要的因子子集创建更多的数字


谢谢

这其中有很多方法,其中有些草图如下:你可以考虑问另一个问题,这些问题显示了你实际用例的特定复杂程度,得到了一个更有用的答案。+ 1——即使你包好<代码>子集()/<代码>调用<代码>下拉()/<代码>你应该写下这个答案。我很高兴看到/回忆起,
droplevels
有一个用于整个data.frames的方法。
with( droplevels( subset(iris, Species %in% c("setosa",  "versicolor") ) ), 
     by(Sepal.Width/Sepal.Length, Species, mean) )