Me gustaría escribir un código que tomaría un marco de datos determinado, verifique si falta alguna columna y, de ser así, agregue las columnas faltantes llenas 0 o NA. Esto es lo que tengo:R: Encuentre las columnas faltantes, agregue al marco de datos si falta
> df
x1 x2 x4
1 0 1 3
2 3 1 3
3 1 2 1
> nameslist <- c("x1","x2","x3","x4")
> miss.names <- !nameslist %in% colnames(df)
> holder <- rbind(nameslist,miss.names)
> miss.cols <- subset(holder[1,], holder[2,] == "TRUE")
Más allá de este punto, no puedo encontrar la manera de poner en la columna que falta ("x3") sin codificar ella. Idealmente, me gustaría que el nuevo y completo marco de datos tenga columnas en el mismo orden que la lista de nombres también.
¿Alguna idea? Mi código actual puede ser ignorado, no hay problema.
También puede usar 'Missing <- setdiff (nms, names (df))' que es un poco más transparente. –
@HongOoi - Buena sugerencia. Eso es mucho mejor, y he editado la respuesta para incluirlo. ¡Gracias! –