R 因子终止符:MFA分析错误“;'中的值无限或缺失;x'&引用;
我正试图对最终的数据框架进行MFA分析,分析4个研究物种的所有信息R 因子终止符:MFA分析错误“;'中的值无限或缺失;x'&引用;,r,error-handling,pca,na,missing-data,R,Error Handling,Pca,Na,Missing Data,我正试图对最终的数据框架进行MFA分析,分析4个研究物种的所有信息 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 in
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")
这很奇怪,因为我的数据帧不包含任何无限或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 ...
有没有人知道是什么导致了这个问题,以及如何解决这个问题?我将非常感谢任何帮助
旁白:对不起,我必须让它重现。在这里您可以下载final_frame.csv-
final_frame以复制/粘贴友好的格式提供示例输入数据更容易。我不太熟悉MFA分析,但这可能是因为数据中有零方差列吗?这些数据无法提供,需要删除。以便于复制/粘贴的格式提供示例输入数据更容易。我不太熟悉MFA分析,但这可能是因为数据中有零方差列吗?这些不能起作用,需要删除。
> 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 ...
final_frame <- read.csv("final_frame.csv", header = T, sep=",", row.names = 1)
d<- 2
maxPredict<- 1
maxPredict <- 3
d <- 2