Zum Beispiel habe ich einen Datenrahmen, der wie folgt aussieht:Gibt es eine R-Funktion, die eine Spalte in eine beliebige Anzahl von Spalten mit mehreren Spalten aufteilt?
df = data.frame(x=c('a, b, c','b, c', 'd, e'))
Idealerweise würde ich mit einem Datenrahmen am Ende, das wie folgt aussieht:
df.transformed = data.frame(x.a = c(1,0,0),
x.b = c(1,1,0),
x.c = c(1,1,0),
x.d = c(0,0,1),
x.e = c(0,0,1))
Wo jede der möglichen komma Begrenzte Werte innerhalb x
wurden getrennt.
Ich habe manuelle Lösungen für dieses Problem viele Male codiert, aber das ist etwas, das ich oft in Umfragedaten gefunden habe, um mich wundern, warum dies nicht in einem Paket wie tidyr
enthalten ist, da die separate
Funktion in diesem Paket scheint weniger nützlich. Ich möchte dies in einer Zeile nach dem Laden der benötigten Pakete tun können.
Versuchen 'qdapTools :: mtabulate (strsplit (as.character (df $ x) " \\ s *"))' oder mit '' tidyverse' rownames_to_column (df, 'rn')%>% separate_rows (x)%>% mutieren (i = 1)%>% spread (x, i, fill = 0) ' – akrun
Wenn Sie es umbenennen müssen, ketten Sie es mit'%>% aus (-rn)%>% rename_all (Spaß (paste0 ("x",.))) – akrun