R:错误消息---包错误:“functionName”未从当前命名空间解析

时间:2013-08-12 16:37:44

标签: r

我正在使用一直运行到R3.0的软件包。

问题如上所述......当我们调用一个在R 2.15.2中有效的函数时 从R 3.0我们得到一个错误

Error in .C("solarspectrum3", as.double(lon), as.double(lat), as.double(timezone),  : 
  "solarspectrum3" not resolved from current namespace (SolarSpectrum)

任何帮助将不胜感激

亚历

该套餐可在https://www.dropbox.com/s/zgspdzd2rq5jmh6/SolarSpectrum_1.0.tar.gz

找到

安装包

R CMD INSTALL SolarSpectrum_1.0.tar.gz ,那么

运行

require(SolarSpectrum)

longitude=2

latitude=50

date=as.POSIXct("2008-06-06")

PAR <- SolarSpectrum.PAR(longitude, latitude, date)[2]

此时应显示错误

2 个答案:

答案 0 :(得分:4)

此错误消息可能会影响使用.C().Call()调用来调用外部代码的函数。

问题在this R-help thread中有详细描述;特别是马丁摩根的回应很有用。当版本3.0.0发布时,他引用了R的NEWS文件的条目。

  

没有PACKAGE的包中的外部函数调用(.C()等)   参数只会查看NAMESPACE中指定的第一个DLL   包的文件而不是搜索所有加载的DLL。一些   包中需要添加PACKAGE参数。

因此,需要在包的来源中修改对.C().Call()的调用,以包含PACKAGE = "name_of_dll_without_extension"

您可以使用以下代码找到DLL名称。

dir(system.file("libs", package = "rpkgname"))

答案 1 :(得分:0)

现在可能已经解决了;但是,尝试将SolarSpectrum.PAR中的.C调用的PACKAGE参数设置为“SolarSpectrum”(这可能涉及更改SolarSpectrum.PAR的包源文件)。这可能会让R看到正确的命名空间(我实际上没有尝试过这个,但它适用于具有相同错误的不同包)。