使用tell of sensitivity package时,`row.names< - .data.frame`(`* tmp *`,value = value)出错

时间:2015-03-04 16:02:44

标签: r list dataframe

我正在使用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该消息所引用的那个对象。

任何提示都表示赞赏。

1 个答案:

答案 0 :(得分:1)

终于找出了问题所在。这个错误有点像误导。 问题不在于行名称,因为它们是相同的,这首先激起了我的兴趣。他们显然没有任何问题。

实际问题是sob.pars中的列名。这些都丢失了。一旦我添加这些一切都很好。非常感谢rawr(我刚才注意到有人评论了这个问题,我想我会在发生这种情况时收到通知,但我猜不会。)