0

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

ABM 模型运行数据

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

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

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

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

这是困难的一个。提前致谢!

4

1 回答 1

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)
于 2015-05-05T21:51:53.850 回答