So teilen sie eine spalte in r in mehrere spalten auf (mit beispielen)


Sie können eine von zwei Methoden verwenden, um eine Spalte in R in mehrere Spalten aufzuteilen:

Methode 1: Verwenden Sie str_split_fixed()

 library (stringr)

df[c(' col1 ', ' col2 ')] <- str_split_fixed(df$original_column, ' sep ', 2)

Methode 2: Separate() verwenden

 library (dplyr)
library (tidyr)

df %>% separate(original_column, c(' col1 ', ' col2 '))

Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.

Methode 1: Verwenden Sie str_split_fixed()

Angenommen, wir haben den folgenden Datenrahmen:

 #create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#view data frame
df

         player points assists
1 John_Wall 22 8
2 Dirk_Nowitzki 29 4
3 Steve_Nash 18 15

Wir können die Funktion str_split_fixed() aus dem stringr- Paket verwenden, um die Spalte „Spieler“ wie folgt in zwei neue Spalten namens „Erste“ und „Last“ aufzuteilen:

 library (stringr)

#split 'player' column using '_' as the separator
df[c(' First ', ' Last ')] <- str_split_fixed(df$player, ' _ ', 2)

#view updated data frame
df

         player points assists First Last
1 John_Wall 22 8 John Wall
2 Dirk_Nowitzki 29 4 Dirk Nowitzki
3 Steve_Nash 18 15 Steve Nash

Beachten Sie, dass am Ende des Datenrahmens zwei neue Spalten hinzugefügt werden.

Sie können die Spalten jederzeit neu anordnen und die ursprünglichen „Spieler“-Spalten entfernen, wenn Sie möchten:

 #rearrange columns and leave out original 'player' column
df_final <- df[c('First', 'Last', 'points', 'assists')]

#view updated data frame
df_final

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Methode 2: Separate() verwenden

Der folgende Code zeigt, wie Sie die Funktion Separate() des Tidyr- Pakets verwenden, um die Spalte „Spieler“ in die Spalten „erste“ und „letzte“ zu trennen:

 library (dplyr)
library (tidyr)

#create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Beachten Sie, dass die Funktion Separate() Zeichenfolgen basierend auf nicht-alphanumerischen Werten trennt.

Wenn beispielsweise der Vor- und Nachname durch ein Komma getrennt wären, würde die Funktion Separate() automatisch basierend auf der Position des Kommas aufgeteilt:

 library (dplyr)
library (tidyr)

#create data frame
df <- data. frame (player=c('John,Wall', 'Dirk,Nowitzki', 'Steve,Nash'),
                 dots=c(22, 29, 18),
                 assists=c(8, 4, 15))

#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))

  First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15

Die vollständige Online-Dokumentation zur Separate()- Funktion finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in R ausgeführt werden:

So kombinieren Sie in R zwei Spalten zu einer
So sortieren Sie einen Datenrahmen nach Spalte in R
So fügen Sie Spalten zum Datenrahmen in R hinzu

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert