【问题标题】:How can I fix a rownames error in the as.mids function?如何修复 as.mids 函数中的行名错误?
【发布时间】:2019-07-19 18:17:01
【问题描述】:

我在使用 R v3.6 包 mice (v3.5.0) 中的函数 as.mids 时遇到错误:

Error in `.rowNamesDF<-`(x, value = value) : 
duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': '1', '2', '3', [...]

这里有一些背景:

我正在对协变量数据使用多重插补。我估算了丢失的协变量数据,然后将结果保存为长格式的数据框:

imputed <- mice(raw.data,...)

mydata <- complete(imputed, "long", inc = TRUE)

我尝试将数据框转换为 mids 对象以进行分析。

mydata <- as.mids(mydata)

但是,这导致了上述错误。

我不明白这条消息,因为数据框没有行名(我检查了rownames(mydata) &lt;- NULL)

感谢任何建议。

更新包手册指出:

该函数期望输入的数据长按插补排序 数字(变量“.imp”默认),并在相同的顺序内 每个插补块。

所以我尝试了newdata &lt;- mydata[order(mydata$.imp,mydata$.id),],然后尝试了as.mids。结果相同的错误消息。

【问题讨论】:

  • 对不起,在我看来您对多重插补不太了解,而且您即将进行的分析没有意义。提供1.完整的mice()调用,2.计划分析的信息和代码,3.示例数据,在this way中提供。

标签: r


【解决方案1】:

问题是我分别估算了男性和女性的数据,并在我调用了 complete(...,action=long) 之后合并了数据框的行。 .id 变量确实有重复,因为它是男性 1:nrow 和女性 1:nrow 的向量。我重新编码了.id 变量以对应于个人ID,问题得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2019-10-01
    • 1970-01-01
    • 2021-06-12
    • 2019-07-01
    相关资源
    最近更新 更多