【问题标题】:finding percentage frequency of outcomes over groups in R在 R 中找到各组结果的百分比频率
【发布时间】:2015-05-05 21:39:43
【问题描述】:

我有一个非常大的数据框,表示来自基于代理的模型的时间序列数据,如下所示:

此数据集中的每一行代表模型的一个周期,它可以运行任意长度的时间并终止于以下三个结局之一:“统一”、“稳定性”或“不稳定”。

我正在构建一个显示按维度和连接分面的时间序列数据的大图,并且我想通过结束来分隔运行,以便以特定结尾结束的所有运行在图中获得单独的颜色。我希望每条线的粗细是该批次中每种结束发生的相对频率。

为了做到这一点,我需要在该数据中添加另一列“计数”,以计算在按维度和连接分组的一批运行中特定结尾出现的次数,然后显示该数字在以该结尾为特征的每一行中。

因此,假设运行 1 到 10 的维度==4,连接数==2。其中四次以“稳定”告终,两次以“不稳定”告终,两次以“团结”告终。我希望“计数”列是 4、2 和 2,对于该批次数据中的每一行,它们都有各自的结尾。

这是一个艰难的过程。提前致谢!

【问题讨论】:

  • dput而不是屏幕截图共享数据非常。只需 dput(head(your_data)) 并将其粘贴到您的问题中。
  • 更好的是,将其设为 10 行,但忽略与此问题无关的列:dput(head(your_data[, c("run", "dimensions", "connections", "ending")], 10))
  • 谢谢——下次我会这样做的。

标签: r aggregate group-summaries


【解决方案1】:

如果没有可重复的数据就无法测试,但使用 dplyr 应该可以:

library(dplyr)
your_data %>%
  group_by(dimensions, connections) %>%
  mutate(runs_in_batch = n()) %>%
  group_by(dimensions, connections, ending) %>%
  mutate(count = n(),
         pct_in_batch_this_ending = count / runs_in_batch)

【讨论】:

  • 谢谢你,格雷戈尔!但我不确定 %>% 是什么意思/作用?
  • 它只是将它之前的内容作为它之后的第一个函数提供。它来自magrittr 包,但在dplyr 中鼓励使用它。有一个很好的介绍here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-23
  • 1970-01-01
  • 2022-11-18
  • 1970-01-01
  • 2022-01-08
  • 2018-12-13
  • 2017-11-29
相关资源
最近更新 更多