Creo que debe haber una forma mejor de hacerlo.Reordenar las columnas del dataframe ignorando las columnas no identificadas
Estoy intentando reordenar las columnas en un marco de datos. Tengo una lista, ordered.colnames
, que representa el nuevo pedido, pero algunas de las columnas no existen en dataset
. Para evitar el error "undefined columns selected
", he ajustado el corte relevante en una función try()
.
El siguiente método funciona, pero ¿hay una mejor manera de hacerlo?
> ordered.colnames[1:5]
[1] "lady_22102" "attentions_83249" "perseverance_17864"
[4] "cecil_84477" "cecilia_133476"
dataset.reordered = c()
for (i in 1:length(ordered.colnames)) {
col = NA
col = try(cbind(dataset[,ordered.colnames[i]]),silent=TRUE)
if (!inherits(col,"try-error")) {
colnames(col) = ordered.colnames[i]
dataset.reordered = cbind(dataset.reordered, col)
}
}
Eso funciona. No puedo creer que no haya pensado en eso ... Gracias. – ariddell
Ver también intersectar – hadley