1

Rを使用してPCA分析を行っています。データセットの転置を処理する必要があることに気付くまで、すべてが正常に機能していました。しかし、転置されたデータセットで PCA を実行しようとすると、うまくいきませんでした!

> sum(is.na(data_t))
[1] 1367
> dim(data_t)
[1]  599 9505
> data_t[1:4,1:4]
                             2'-PDE    7A5      A1BG     A2M
TCGA.A1.A0SD.01A.11R.A115.07  0.0153750 2.4105 0.9493333 0.24200
TCGA.A1.A0SE.01A.11R.A084.07  0.4669375 0.3635 0.2798333 1.03850
TCGA.A1.A0SH.01A.11R.A084.07 -0.0295625 1.8550 0.7486667 1.16050
TCGA.A1.A0SJ.01A.11R.A084.07  0.7919375 1.4080 0.7500000 1.67775

> pca2<-princomp(~.,data=data_t, na.action=na.omit)
 Error in `[.data.frame`(mf, , x) : undefined columns selected

> pca2<-princomp(data_t, na.action=na.omit)
 Error in princomp.default(data_t, na.action = na.omit) : 
  'princomp' can only be used with more units than variables

単位よりも多くの変数がある場合、princomp を使用できないことが判明しました。しかし、prcomp を使用することはできます ( R を参照してください - 'princomp' は変数よりも多くの単位でのみ使用できます)。それでもエラーが発生します!

> pca2<-prcomp(data_t,na.action=na.omit)
 Error in svd(x, nu = 0) : infinite or missing values in 'x'

> pca2<-prcomp(~ ., data=data_t, na.action=na.omit, scale=TRUE)
 Error in `[.data.frame`(mf, , x) : undefined columns selected
4

2 に答える 2

2

欠損データがあり、すべての変数で数式を使用しようとすると、R はそれを好まないようです。したがって、これは機能しました:

pca2<-prcomp(na.omit(data_t), scale=TRUE)

もちろん、これにより、データが欠落している列が省略されます。

于 2013-01-14T20:58:56.217 に答える