Ich denke, dass es einen besseren Weg geben muss, dies zu tun.Ordne Datenrahmenspalten neu an und ignoriere nicht identifizierte Spalten
Ich versuche, die Spalten in einem Datenrahmen neu zu ordnen. Ich habe eine Liste, ordered.colnames
, die die neue Reihenfolge darstellt - aber einige der Spalten existieren nicht in dataset
. Um den Fehler "undefined columns selected
" zu vermeiden, habe ich den relevanten Slicing in eine Funktion verpackt.
Die folgende Methode funktioniert, aber gibt es eine bessere Möglichkeit, dies zu tun?
> 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)
}
}
Das funktioniert. Ich kann nicht glauben, dass ich nicht daran gedacht habe ... Danke. – ariddell
Siehe auch Schnittpunkt – hadley