with tutorial prcomp funcion for example eliminar r pca na

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)