我正在用imputeFAMD和FactoMineR治疗NAs做一个FAMD。FAMD运行良好,但是summary()在打印类别时会产生错误。有19个连续变量和2个类别变量。
library(FactoMineR)
library(missMDA)#handle missing values
n = c(2, 3, 5, 3, 4, 6, 7, 3, 7, 3, 7, 8, 11, 4, 13)
s = c("aa", "bb", "cc", "aa", "bb", "cc", "aa", "bb", "cc", "aa", "bb", "cc", "aa", "bb", "cc")
b = c(1, 4, NA, NA, 2, 1, 7, 1, 2, NA, NA, 2, 1, 7, NA)
all = data.frame(n, s, b)
complete = imputeFAMD(all)
FAMDall = FAMD(all, tab.comp = complete)
summary(FAMDall, nbelements = Inf, ncp=4)在连续变量之后,summary(FAMDall, nbelements = Inf, ncp=4)的输出停止,如下所示:
Categories
Error in mat[, indice + nb.col * (0:(ncp - 1))] <- obj$cos2[1:nbelements, :
number of items to replace is not a multiple of replacement length发布于 2018-06-01 00:47:16
问题似乎出在tab.comp的争论中。?FAMD上的FactoMineR文档要求提供由imputeFAMD产生的整个对象,但您需要的是$tab.disj列表元素中的推定矩阵。请参阅?imputeFAMD中的示例部分。这应该是可行的:
n = c(2, 3, 5, 3, 4, 6, 7, 3, 7, 3, 7, 8, 11, 4, 13)
s = c("aa", "bb", "cc", "aa", "bb", "cc", "aa", "bb", "cc", "aa", "bb", "cc", "aa", "bb", "cc")
b = c(1, 4, NA, NA, 2, 1, 7, 1, 2, NA, NA, 2, 1, 7, NA)
all = data.frame(n, s, b)
complete = imputeFAMD(all)
FAMDall = FAMD(all, tab.comp = complete$tab.disj)
summary(FAMDall, nbelements = Inf, ncp=4)https://stackoverflow.com/questions/50625372
复制相似问题