2017-05-11 31 views
0

我一直在使用RNetLogo包如何使用RNetLogo提取代理集?

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

有什麼不對使用NLGetAgetSet功能麻煩劑集R中?我需要一些幫助。

回答

1

此問題應該在rforge提供的RNetLogo版本1.0-4中修復。

使用

install.packages( 「RNetLogo」,回購= 「http://R-Forge.R-project.org」)

從rforge(來自代替CRAN)安裝。

如果您確認問題已解決,我會將CRAN軟件包從1.0-3更新到1.0-4。

+0

令人難以置信的是,這也適用!如果我事先知道這一點,我可以節省40個小時。非常感謝你不要跳過這個問題〜!!! :)等等,想一想,你不是這個軟件包的設計者嗎?我很高興見到你 –

1

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 
+0

哇〜!!你真的解決了我的問題〜!非常感謝〜!如果我還有一個問題,那麼「RNetLogo :: NLReport(記者)」中的「::」是什麼意思......?) –

+0

哦,如果軟件包以前由'庫(RNetLogo)'。 – bergant