我正在使用Sensitivity包进行敏感性研究。当尝试使用外部模型的输出数据计算灵敏度指数时,我得到了标题中指定的误差。
输出是一个存储在csv文件中的三列表,我按如下方式阅读:
day1 <- read.csv("day_1_outputs.csv",header=FALSE)
现在,当我尝试使用第一列的输出计算灵敏度指数时:
tell(sob.pars,day1[,1])
我明白了:
Error in `row.names<-.data.frame`(`*tmp*`, value = value) :
invalid 'row.names' length
起初我以为我应该使用像对象这样的矩阵,因为在我进行的另一项研究中,我生成了一个光栅图像的输出,该图像作为一个工作正常的矩阵读取,但这没有帮助。 告诉状态的帮助页面使用矢量作为模型结果,但即使我在使用之前存储数据帧的列,也告诉问题仍然存在。
我想我的主要问题是我不理解与tell函数一起使用的错误消息,sob.pars是灵敏度分析返回的列表,来自同一个包的对象构造函数所以我不知道哪个rownames该消息所引用的那个对象。
任何提示都表示赞赏。
答案 0 :(得分:1)
终于找出了问题所在。这个错误有点像误导。 问题不在于行名称,因为它们是相同的,这首先激起了我的兴趣。他们显然没有任何问题。
实际问题是sob.pars中的列名。这些都丢失了。一旦我添加这些一切都很好。非常感谢rawr(我刚才注意到有人评论了这个问题,我想我会在发生这种情况时收到通知,但我猜不会。)