FactorMineR:MFA分析错误“'x'中的无限或缺失值”

时间:2016-09-26 03:20:54

标签: r error-handling pca na missing-data

我正在尝试使用有关4种研究物种的所有信息对最终数据框进行MFA分析。

library(FactoMineR)

ff <- final_frame
ff <- ff[, colSums(is.na(ff)) != nrow(ff)] #making sure there are no missing values
for (i in 1: (d+2)) # d is the number of characters columns. Turning all categorical input into factors
{
ff[,i] <- as.factor(final_frame[,i])
}
dim<- dim(ff)[2] - maxPredict*2 - d -2
res = MFA(ff[,2:dim(ff)[2]], group=c(1, d, maxPredict*2, dim), type=c("n", "n" ,"s", "s"), ncp=2, name.group=c("hyp.species", "characters", "morphometrics", "climatic"))
plot(res,choix="ind",partial="all")

但是,我不断收到错误消息:

Error in eigen(crossprod(t(X), t(X)), symmetric = TRUE) : 
  infinite or missing values in 'x'

这很奇怪,因为我的数据框不包含任何无限或NA值。

> ff
      cur_species hyp_species Character1 Character2        X1         X2 X1.1
1103A           0           2          0          0 0.6647259 0.05703327 1139
1103B           0           0          0          0 0.6647259 0.05703327 1183
1103C           1           1          1          1 0.6647259 0.05703327 1196
1103D           2           1          2          1 0.6647259 0.05703327 1160
           X2.1
1103A -0.383871
1103B -4.183870
1103C  0.320000
1103D  1.845160

我甚至用str(ff)和许多其他功能检查了它。没有遗漏的值。

> str(ff)
'data.frame':   4 obs. of  8 variables:
 $ cur_species: Factor w/ 3 levels "0","1","2": 1 1 2 3
 $ hyp_species: Factor w/ 3 levels "0","1","2": 3 1 2 2
 $ Character1 : Factor w/ 3 levels "0","1","2": 1 1 2 3
 $ Character2 : Factor w/ 2 levels "0","1": 1 1 2 2
 $ X1         : num  0.665 0.665 0.665 0.665
 $ X2         : num  0.057 0.057 0.057 0.057
 $ X1.1       : num  1139 1183 1196 1160
 $ X2.1       : num  -0.384 -4.184 0.32 1.845

我花了好几天检查整个脚本并试图弄清楚什么是错的,但我仍然不知道如何使这个工作。最奇怪的是,相同的脚本适用于更大的40个样本数据帧,它实际上包含NA。

> str(ff)
'data.frame':   40 obs. of  16 variables:
 $ cur_species: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ hyp_species: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ Character1 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ Character2 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ X1         : num  NA 0.665 0.665 NA NA ...
 $ X2         : num  NA -0.00142 -0.00142 NA NA ...
 $ X3         : num  NA 0.00232 0.00232 NA NA ...
 $ X4         : num  NA 0.057 0.057 NA NA ...
 $ X5         : num  NA 0.0479 0.0479 NA NA ...
 $ X6         : num  NA 0.0487 0.0487 NA NA ...
 $ X1.1       : num  1550 1718 1718 NA NA ...
 $ X2.1       : num  218 209 209 NA NA ...
 $ X3.1       : num  197 193 193 NA NA ...
 $ X4.1       : num  0.199 0.104 0.104 NA NA ...
 $ X5.1       : num  1.03 1.12 1.12 NA NA ...
 $ X6.1       : num  11.9 13.5 13.5 NA NA ...

有没有人有任何想法可能导致此问题以及如何解决此问题?我非常感谢任何帮助!

P.S。:抱歉,我必须使这个可重复。在这里,您可以下载final_frame.csv - http://www.sharecsv.com/s/752a1b1646013e511e851e99cf969445/final_frame.csv

final_frame <- read.csv("final_frame.csv", header = T, sep=",", row.names = 1)

在脚本之前运行此命令,您将获得我使用的相同的4个示例数据框。此外,对于此数据框:

d<- 2
maxPredict<- 1

以下是适用于我的脚本的更大的40个样本数据框的文件 - http://www.sharecsv.com/s/39188c26e1f17e32868bfe799be0a942/big_final_frame.csv

maxPredict <- 3
d <- 2

谢谢

0 个答案:

没有答案