首页 > 解决方案 > 数据帧 R 中的观测值和变量数不相等

问题描述

我在 R 中运行abc(近似贝叶斯计算)库。我正在使用来自abc.data的人类数据集。我在模型选择示例的代码行下方运行,该示例运行良好。

modsel.it <- postpr(stat.voight["italian",], models, stat.3pops.sim, tol=.05, method="mnlogistic")
summary(modsel.it)
    

我将上述人类数据集数据帧(stat.voight、models、stat.3pops.sim)分别保存为 .csv(st、mod、stat3,并为 .csv 文件运行同一行代码。它工作正常,但是当我运行postpr函数时出现错误,如下所述

t <- postpr(st["italian",], mod, stat3, tol=.05, method="mnlogistic")

它给了我一个错误Error: 'Number of summary statistics in 'target' has to be the same as 'sumstat'。然后我检查了实际数据帧的str(结构),然后打开我保存为.csv。我保存为.csv 的那个是从实际的数据帧中改变的。下面显示的是实际(stat.voight).csv(st)数据帧的图像。我想将我的数据框st数据框更改为与数据框 stat.voight相同。谢谢

在此处输入图像描述

标签: rdataframedatasetrows

解决方案


write.csv()函数有一个默认参数row.names = TRUE,它将行名写入 CSV 中的第一列。如果设置row.names = FALSE,则不会将行名写入文件。

也就是说,这些对象具有许多属性,这些属性未使用write.csv(). 因此,您最好使用saveRDS()readRDS()序列化这些对象并将它们重新加载到 R 中。


推荐阅读