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
Notez également que
Merci pour la mise en forme
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
Vous devez vous connecter pour publier un commentaire.
À en juger par le fait que
sum(is.na(Sample.scaled))
sort90
, quandsum(is.na(Sample))
était0
, on dirait que vous avez trois constant colonnes.Voici un générés aléatoirement (reproductible), par exemple, qui donne les mêmes messages d'erreur:
Vous pouvez essayer quelque chose comme:
c'est à dire utiliser
na.omit
sur la transposition de se débarrasser de laNA
colonnes plutôt que de lignes.Comment est le cas de valeurs infinies?
OriginalL'auteur pete
L'infini négatif valeurs peuvent être remplacées après un journal transformer comme ci-dessous.
OriginalL'auteur Joshua Burkhart