MCA в FactoMineR
Я рисую график MCA, используя FactoMine R. У меня есть таблицы данных, которые выглядят так:
Met Aa Fn Pg Pi Tf Smut Ssob An Csput
C1 High N.S. N.S. N.S. High N.S. High High N.S.
C2 High N.S. Low High N.S. N.S. N.S. N.S. N.S.
C4 High High N.S. High N.S. N.S. High N.S. High
C6 N.S. N.S. High N.S. N.S. N.S. N.S. N.S. High
C9 Low Low Low Low Low High N.S. Low Low
C12 N.S. N.S. Low N.S. N.S. N.S. High N.S. High
###So I loaded my data
metabolites<-read.csv2('MCA24h_carbon.csv',dec='.')##all metabolites at 24h
###Named the column
metID<-metabolites$met
###Created a new matrix
newmet<-subset(metabolites,select=-c(Met))
### and the number of categories per variable
cats<- apply (newmet, 2, function(x) nlevels(as.factor(x)))
#and this is the output I get from the analysis:
structure(c(85L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L,
3L, 3L, 3L, 3L), .Names = c("Var", "Aa", "Fn", "Pg", "Pi", "Tf",
"Smut", "Ssob", "An", "Csput"))
Это был мой первый красный знак... После этого я выполнил MCA, чтобы посмотреть, что я получу, и это был код:
mca1=MCA(metabolites, graph=FALSE)
mca1$eig
mca1$var$coord
mca1$ind$coord
mca1_var_df=data.frame(mca1$var$coord, Variable=rep(names(cats), cats))
mca1_obs_df= data.frame(mca1$ind$coord)
Тогда я получаю следующее в консоли:
Error in data.frame(mca1$var$coord, Variable = rep(names(cats), cats)) :
arguments imply differing number of rows: 269, 254
Я очень новичок в использовании R (как в течение 1 недели), но у меня есть опыт использования SAS... Я понятия не имею, что я делаю неправильно и почему R фиксирует мои данные в вышеуказанной структуре (3L, 3L, 3L...) У кого-нибудь есть идеи, как поступить?
1 ответ
У меня была та же проблема, и я исправляю ее, удаляя NA, а также проверяю, чтобы у вас было такое же количество уровней факторов, что и у меток для этого фактора!