J'utilise la fonction prcomp
pour calculer les deux premiers composants principaux. Cependant, mes données ont des valeurs NA et donc la fonction génère une erreur. Le na.action défini ne semble pas fonctionner même s'il est mentionné dans le fichier d'aide ?prcomp
Voici mon exemple:
d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10))
prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
d$V1[5] <- NA
d$V2[7] <- NA
prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
J'utilise la dernière version R 2.15.1 pour Mac OS X.
Quelqu'un peut-il voir la raison de l'échec de prcomp
?
Voici mon nouvel exemple:
d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10))
result <- prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x
d$V1[5] <- NA
result <- prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x
est-il possible de conserver la ligne 5 dans PC1 et PC2? Dans mon ensemble de données réel, j'ai bien sûr plus de deux colonnes de variables et seulement certaines d'entre elles sont manquantes et je ne veux pas perdre les informations restantes cachées dans les autres valeurs!
Une autre solution si vous n'êtes pas disposé à utiliser l'interface de formule est
prcomp(na.omit(d), center = TRUE, scale = TRUE)
qui consistent à appliquer na.omit
directement dans le bloc de données.
Oui, cela ressemble à une "fonctionnalité" (bug) qui na.action
est complètement ignoré sauf si vous utilisez l'interface formula
. Cela a été évoqué auparavant sur la liste de développement R .
Je pense que cela devrait être documenté ou signalé comme un bug.
Juste pour être clair, cela fonctionnerait car il accède à l'interface de formule:
prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)