找到 R 中各组结果的百分比频率

finding percentage frequency of outcomes over groups in R

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

此数据集中的每一行代表模型的一个循环,它可以 运行 任意时间长度并终止于以下三种结局之一:"unity," "stability," 或"instability."

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

为此,我需要向此数据添加另一列,"count," 计算特定结尾在按维度分组的一批 运行 中出现的次数,并且连接,然后让该数字出现在以该结尾为特征的每一行中。

所以,假设 运行s 1 到 10 是维度==4 和连接==2。其中四个 运行 以 "stability," 结尾,两个以 "instability," 结尾,两个以 "unity." 结尾 我希望 "count" 列为 4、2 和 2 ,对于那批数据中的每一行都有各自的结尾。

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

无法在没有可重现数据的情况下进行测试,但是使用 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)