Erreur dans la svd(x, nu = 0) : 0 dimensions étendue

Je suis en train de faire de l'APC sur la trame de données avec 5000 colonnes et 30 lignes

Sample <- read.table(file.choose(), header=F,sep="\t")
Sample.scaled <- data.frame(apply(Sample,2,scale))
pca.Sample <- prcomp(Sample.scaled,retx=TRUE)`

Obtenu l'erreur

Error in svd(x, nu = 0) : infinite or missing values in 'x'

sum(is.na(Sample))
[1] 0

sum(is.na(Sample.scaled))
[1] 90

Essayé de l'ignorer tous les na les valeurs à l'aide de la

pca.Sample <- prcomp(na.omit(Sample.scaled),retx=TRUE)

Qui donne l'erreur suivante

Error in svd(x, nu = 0) : 0 extent dimensions

Il y avait des rapports que na.l'action nécessite une formule donnée, et donc essayé de le ci-dessous

pca.Sample <- prcomp(~.,center=TRUE,scale=TRUE,Sample, na.action=na.omit)

Maintenant l'erreur suivante se produit

Error in prcomp.default(x, ...) :
  cannot rescale a constant/zero column to unit variance

Pense que le problème est peut-être parce que "l'Un de mes colonnes de données est constante. La variance d'une constante est 0, et serait mise à l'échelle, puis diviser par 0, ce qui est impossible."

Mais vous ne savez pas comment y remédier. Toute aide appréciée ....

Essayez is.finite(Sample) au lieu de is.na. Aussi, vous lisez dans les données.image, convertir à la matrice et aux données.cadre, vous êtes sûr que tous vos colonnes dans Sample sont numériques (ou que R pense qu'ils sont). lapply(Sample, scale) peut fonctionner mieux.
Notez également que ?prcomp a déjà un na.action= paramètre qui doit être na.omit par défaut.
Merci pour la mise en forme

OriginalL'auteur Tinu Thomas | 2012-11-12