从RNetLogo加载带扩展名的Netlogo模型

时间:2017-07-12 11:09:35

标签: r netlogo

我正在尝试使用RNetLogo在无头模式下加载Netlogo模型。该模型使用由extensions [rnd]添加到模型的rnd扩展。如果我尝试使用NLLoad(model.path)加载模型,则会出现此错误:

NLLoadModel(model.path)
[1] "Java-Object{Can't find extension: rnd at position 79 in }"
Error in NLLoadModel(model.path) :`

不幸的是,我在documentation of NLLoad找不到任何内容。

我尝试将工作目录设置为Netlogo目录:setwd("/Applications/Netlogo 6.0.1")。这会将错误更改为

[1] "Java-Object{There was a problem while reading extension rnd at position 79 in }"
Fehler in NLLoadModel(model.path) : 

rnd扩展程序在扩展程序文件夹中安全无虞:/Applications/Netlogo 6.0.1/extensions/rnd.jar

3 个答案:

答案 0 :(得分:2)

回应你的评论 - 这太糟糕了,但值得一试。也许这种方法只适用于从命令行运行无头。我也只是觉得你看起来像是在Mac上 - 我正在运行Windows,所以我的解决方案很可能不适合你。您是否在RNetlogo documentation

中阅读了“MAC用户注释”

无论如何,我在Windows上有一个简单的版本,所以我想我会告诉你我的设置,看看是否有帮助。这是包含我的模型的文件夹,以及包含app的{​​{1}}文件夹和包含所有扩展名及其文件夹的netlogo-6.0.1.jar文件夹(从{{1}内复制完整文件夹):

Folders and model file

extensions如下:

app

然后,在R:

test_rnd.nlogo

所以在这个例子中,至少在Windows中,只是将扩展文件夹,app文件夹和模型文件本身放在同一个位置似乎都有效。抱歉,我不知道Mac的修复程序,希望其他人有正确的解决方案。

答案 1 :(得分:0)

我通过将CSV扩展文件夹的内容直接复制到app文件夹中来完成此工作(使用CSV扩展名)。

我在GNU / Linux下工作。此方法对OSx用户也可能更好。我猜这是没有按预期工作,因为没有“安装”RNetLogo为我们设置类路径。我们明确告诉R在哪里可以找到netlogo-x.x.x.jar,但不能找到任何扩展。

答案 2 :(得分:0)

在Mac上,此问题可以通过以下方法解决:

对于正在使用的每个NetLogo扩展,请将其复制并粘贴到包含您要运行的.nlogo模型的目录中。

例如,对于扩展名rnd,将文件夹/Applications/NetLogo 6.0.4/extensions/nw复制到model.path中设置的封闭文件夹中。 NLLoadModel(model.path)现在应该执行而不会出现此错误。

此解决方案基于Extensions Guide of the NetLogo 6.0.4 User Manual(添加了重点):

  

NetLogo将在几个地方寻找扩展名:

     
      
  1. 在当前模型的文件夹中。
  2.   
  3. NetLogo安装中的扩展文件夹。对于典型的NetLogo安装:      
        
    • 在Mac OS X上:/ Applications / NetLogo 6.0.4 / extensions
    •   
    • 在具有64位NetLogo的64位Windows或具有32位NetLogo的32位Windows上:C:\ Program Files \ NetLogo 6.0.4 \ app \ extensions
    •   
    • 在具有32位NetLogo的64位Windows上:C:\ Program Files(x86)\ NetLogo 6.0.4 \ app \ extensions
    •   
    • 在Linux上:从安装.tgz中提取的NetLogo目录的app / extensions子目录
    •   
  4.   

我不清楚为什么对/Applications/NetLogo 6.0.4/extensions的检查不起作用,但至少有解决方案!

我在NetLogo中遇到了nw扩展名相同的问题,收到几乎相同的错误:

> NLLoadModel(model.path)
[1] "Java-Object{Can't find extension: nw at position 13 in }"
Error in NLLoadModel(model.path) :

因此,该问题似乎适用于所有扩展程序。