【问题标题】: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 并为我想要的因子子集创建更多数字。

谢谢

【问题讨论】:

  • 有很多方法可以解决这个问题,其中一些在这里概述:stackoverflow.com/a/9800266/1036500 您可能会考虑问另一个问题,这些问题显示了您实际用例的更多具体复杂性以获得更有用的答案。

标签: r


【解决方案1】:
with( droplevels( subset(iris, Species %in% c("setosa",  "versicolor") ) ), 
     by(Sepal.Width/Sepal.Length, Species, mean) )

【讨论】:

  • +1 -- 如果你将subset() 调用与droplevels() 包装起来会更好。
  • 嘿,你应该写这个答案。
  • 哈。我很高兴看到/回忆droplevels 有一个用于整个 data.frames 的方法。
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 2021-07-23
  • 2020-11-26
  • 2021-10-31
  • 2019-07-16
  • 2021-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多