如何使用 RNetLogo 提取代理集?

How can I extract agent-set by using RNetLogo?

我无法使用 RNetLogo 包在 R 中获取代理集

NLCommand("setup")
who <- list()
who[[i]] <- NLGetAgentSet(c("who","xcor","ycor"), "turtles")

NLGetAgetSet函数使用有问题吗?我需要一些帮助。

NLGetAgentSetNLGetPatches 不适用于 NetLogo 6.0。 (我认为这与https://ccl.northwestern.edu/netlogo/docs/transition.html#v60有关)。

幸运的是,这些函数只是 NLReport 的包装器。所以你可以用 NLReport 代替代理。例如:

vars <- c("who", "xcor", "ycor")
agents <- "turtles"

reporters <- sprintf("map [x -> [%s] of x ] sort %s", vars, agents)
nlogo_ret <- RNetLogo::NLReport(reporters)
df1 <- data.frame(nlogo_ret, stringsAsFactors = FALSE)
names(df1) <- vars

此问题应在 rforge 提供的 RNetLogo 1.0-4 版中得到修复。

使用

install.packages("RNetLogo", repos="http://R-Forge.R-project.org")

从 rforge(而不是从 CRAN)安装它。

如果您确认问题已解决,我会将 CRAN 包从 1.0-3 更新到 1.0-4。