Ich habe ein Problem mit mutate{dplyr}
Funktion mit dem Ziel, eine neue Spalte zu Datenrahmen hinzufügen. Ich möchte, dass eine neue Spalte vom Typ Zeichen ist und aus "concat" von sortierten Wörtern aus anderen Spalten besteht (die ebenfalls zeichenartig sind). Zum Beispiel für die folgenden Datenrahmen:dplyr muate in R - Spalte als Concat der Spalten hinzufügen
> library(datasets)
> states.df <- data.frame(name = as.character(state.name),
+ region = as.character(state.region),
+ division = as.character(state.division))
>
> head(states.df, 3)
name region division
1 Alabama South East South Central
2 Alaska West Pacific
3 Arizona West Mountain
Ich möchte eine neue Spalte mit der folgenden ersten Element erhalten:
"Alamaba_East South Central_South"
habe ich versucht, dieses:
mutate(states.df,
concated_column = paste0(sort(name, region, division), collapse="_"))
Aber ich Fehler:
Error in sort(1:50, c(2L, 4L, 4L, 2L, 4L, 4L, 1L, 2L, 2L, 2L, 4L, 4L, :
'decreasing' must be a length-1 logical vector.
Did you intend to set 'partial'?
Vielen Dank für Ihre Hilfe im Voraus!
Danke Paul für Ihr Interesse! Ich folgte Ihren Vorschlägen und es funktioniert mit Ihrem Code, aber wenn ich versuche, * die Wörter zu sortieren (ich meine: 'einfügen (Sortieren (Name, Region, Division), sep = '_'))) es nicht . (Der gleiche Fehler wie oben in meiner Beschreibung). –
Sie müssen die Dokumentation von 'sort' sorgfältig lesen,' sort' nimmt einen Vektor als Eingabe und gibt die sortierte Version zurück. Sie füttern es drei Vektoren, die nicht wie Sie sortieren sollten. Was willst du genau machen? –
Och, ok, ich verstehe (danke für diese Erklärung!). In meinem realen Fall habe ich einen Datensatz mit 3 Spalten. Die 3 Spalten stehen für 3 Aktionen, die aus einem * Set * von Aktionen stammen. Ich kümmere mich nicht mehr um die Reihenfolge, in der diese 3 Aktionen ausgeführt wurden, also wollte ich sie in eine Variable umwandeln - der Wert dieser Variablen würde die Namen dieser 3 Aktionen enthalten und "Sortierung" sollte nicht auf die Reihenfolge achten . –