0

我正在使用 FactoMine R 绘制 MCA 图。我的数据表如下所示:

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.. .) 有没有人知道如何进行?

4

1 回答 1

0

我遇到了同样的问题,我通过删除 NA 来修复它,并检查您的因子级别数量是否与该因子的标签数量相同!

于 2013-07-25T16:13:15.757 回答