我已经使用 mclust 包在一个非缺失数据帧上执行了一个操作。非缺失数据框是使用 dplyr 包通过 select 函数创建的。因此,row.names 在传递给 mclust 函数的数据框中显示为一个向量。
接下来我从这个函数中提取了一些关键值(案例“分类”):
class<-functionobject$classification
因此,分类值的数字列表与 row.names 相关联。
当我尝试将此值列表附加到没有 row.names 的相同长度(相同情况)的新数据帧时,我似乎失去了重要的排序。我知道这一点,因为当我比较新数据框中其他变量的分类组时,它们不等于使用这些相同变量在 mclust 函数中获得的值。
我不能简单地附加到 mclust 函数中使用的非缺失数据框(带有 row.names)的原因是,我需要函数中未使用的数据集中的其他变量,并且需要在 ID 变量上合并为:
NEW_DF=merge(mclust_DF, other_DF, by=c("X1", "X2"))
所以我最终得到了一个长度相同但不再有 row.names 的数据框,我想在上面添加来自上述 mclust 函数的分类值。虽然我使用时没有抛出错误:
FINAL_DF<- cbind.data.frame(NEW_DF, class)
数据已关闭,因为我可以看到对相关变量的组(类)手段的检查不等于 mclust 函数中的那些(它们应该是相同的核心输入数据)。
我意识到我在这里遗漏了一些明显的东西,但是尽管对档案进行了详尽的搜索,但我还没有找到答案。进行这种相当乏味的争论的正确方法是什么?