0

这可能很容易,但我可以使用一些帮助......我已经构建了一个基于代理的模型,该模型可以运行 300 次任意数量的步骤,具体取决于模型内部发生的情况。结果数据的结构如下:

在此处输入图像描述

我想隔离以 150 步或更少步结束的运行,并对其进行整体分析(不仅仅是最后一步)。在 R 中执行此操作的最佳方法是什么?谢谢!

4

1 回答 1

0

首先,用于aggregate获取每次运行的步数:

n_steps <- aggregate(AT6$run, by=list(run=AT6$run), FUN=length)

现在计算一个过滤器变量:

n_steps <- within(n_steps, filter <- x<=150)

与原始数据合并并仅保留过滤的运行:

AT6_f <- merge(AT6, n_steps)

AT6_f <- AT6_f[AT6_f$filter,]

最后通过运行拆分 data.frame:

result <- split(AT6_f, AT6_f$run)

注意:结果是一个列表,每个元素都是一个包含单个运行的 data.frame。如果你有一个f分析每次运行的函数,你应该将上面的结果传递给它:

lapply(result, f)

于 2013-04-15T22:56:35.053 回答