tutorial - La función R de Prcomp falla con los valores de NA, aunque se permiten NA
prcomp() (2)
Estoy utilizando la función prcomp
para calcular los dos primeros componentes principales. Sin embargo, mis datos tienen algunos valores de NA y, por lo tanto, la función produce un error. La na.acción definida parece no funcionar aunque se menciona en el archivo de ayuda ?prcomp
Aquí está mi ejemplo:
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)
Estoy usando la versión R más nueva 2.15.1 para Mac OS X.
¿Alguien puede ver la razón mientras prcomp
falla?
Aquí está mi nuevo ejemplo:
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
¿Es posible retener la fila 5 en PC1 y PC2? ¡En mi conjunto de datos real tengo, por supuesto, más de dos columnas de variables y solo faltan algunas de ellas y no quiero perder la información restante oculta en los otros valores!
Otra solución si no estás dispuesto a usar la interfaz de fórmula es
prcomp(na.omit(d), center = TRUE, scale = TRUE)
que consisten en aplicar na.omit
directamente al marco de datos.
Sí, parece una "característica" (error) que na.action
se ignora por completo a menos que uses la interfaz de formula
. Esto ha sido mencionado anteriormente en la lista de R Development .
Creo que esto debería estar documentado o marcado como un error.
Para ser claros, esto funcionaría porque accede a la interfaz de la fórmula:
prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)