我正在与 R 中的一个奇怪问题作斗争。我使用旧版本的 Rcpp 将 R 与一些 C++ 集成(遗憾的是升级不是一个选项!),我使用的 Rcpp 是旧的 RccpTemplate 。但是我怀疑问题就在那里。
我有一些大部分时间运行良好的 R 代码,但有时(尤其是在处理大量数据时)会神秘地失败Value of SET_STRING_ELT() must be a 'CHARSXP' not a 'character'
它总是在列表操作中失败,例如:
res[["blabla"]] = r
但是,如果我options(error=recover)
在错误后使用并尝试相同的操作,则可以毫无问题地执行分配。C++ 只处理数字向量,实际上在时间上与失败的分配代码相去甚远。
所以我的模糊问题是:这种行为的最常见原因是什么?记性不好?坏对象(也许是坏的RcppResultSet
)?我在解决这个问题时遇到了麻烦......
为了完整性:
platform i386-pc-solaris2.10
arch i386
os solaris2.10
system i386, solaris2.10
status
major 2
minor 10.1
year 2009
month 12
day 14
svn rev 50720
language R