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

Posted

技术标签:

【中文标题】如何从因子子集中获取统计数据?【英文标题】:How to get statistics from a sub-set of factors? 【发布时间】:2013-04-25 04:28:14 【问题描述】:

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

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

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

到目前为止一切顺利。现在,问题是,我怎么能一样,但只针对一组级别。例如仅 setosaversicolor

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

谢谢

【问题讨论】:

有很多方法可以解决这个问题,其中一些在这里概述:***.com/a/9800266/1036500 您可能会考虑问另一个问题,这些问题显示了您实际用例的更多具体复杂性以获得更有用的答案。 【参考方案1】:
with( droplevels( subset(iris, Species %in% c("setosa",  "versicolor") ) ), 
     by(Sepal.Width/Sepal.Length, Species, mean) )

【讨论】:

+1 -- 如果你将subset() 调用与droplevels() 包装起来会更好。 嘿,你应该写这个答案。 哈。我很高兴看到/回忆droplevels 有一个用于整个 data.frames 的方法。

以上是关于如何从因子子集中获取统计数据?的主要内容,如果未能解决你的问题,请参考以下文章

一个因子的 addNA 之后的子集数据帧

如何从 React JS 中的 firebase 文档的所有子集合中获取数据? [复制]

基于因子变量的数据集子设置,该因子变量生成与因子长度一样多的子集

如何从 Firestore 获取子集合数据

循环子集,获取文件并将结果保存在数据框中

如何用因子和向量构建函数