Spalte in R in zwei Spalten aufteilen

Jinku Hu 30 Januar 2023
  1. Verwenden Sie die Funktion separate, um eine Spalte in R . in zwei Spalten aufzuteilen
  2. Verwenden Sie die Funktion extract, um die Spalte in R . in zwei Spalten aufzuteilen
  3. Verwenden Sie die Funktion str_split_fixed, um eine Spalte in R . in zwei Spalten aufzuteilen
Spalte in R in zwei Spalten aufteilen

In diesem Artikel erfahren Sie, wie Sie mit separate in R eine Spalte in zwei Spalten aufteilen.

Verwenden Sie die Funktion separate, um eine Spalte in R . in zwei Spalten aufzuteilen

separate ist Teil des tidyr-Pakets und kann verwendet werden, um eine Zeichenspalte in mehrere Spalten mit regulären Ausdrücken oder numerischen Positionen aufzuteilen. In diesem Codebeispiel deklarieren wir einen DataFrame, der durch Kommas getrennte Zeichenketten von Vornamen/Nachnamen-Paaren enthält. Die Funktion separate nimmt den DataFrame als erstes Argument und den Spaltennamen als zweites Argument. Das dritte Argument bezeichnet die Variablennamen, die Spaltennamen eines neu erstellten Zeichenvektors sein werden. Beachten Sie, dass wir die %>%-Pipe verwenden, um das df-Objekt an die separate-Funktion zu übergeben. Der gleiche Funktionsaufruf kann für den DataFrame aufgerufen werden, bei dem Vor- und Nachnamen mit einem Punkttrennzeichen getrennt sind.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))
df1 <- data.frame(x = c('John. Mae', 'Maude. Lebowski', 'Mia. Amy', 'Andy. James'))

df %>% separate(x, c('Name', 'Surname'))

df1 %>% separate(x, c('Name', 'Surname'))

Ausgabe:

> df %>% separate(x, c('Name', 'Surname'))
   Name   Surname
1  John       Mae
2 Maude  Lebowski
3   Mia       Amy
4  Andy     James

> df1 %>% separate(x, c('Name', 'Surname'))
   Name  Surname
1  John      Mae
2 Maude Lebowski
3   Mia      Amy
4  Andy    James

Verwenden Sie die Funktion extract, um die Spalte in R . in zwei Spalten aufzuteilen

Eine weitere nützliche Funktion, um eine Spalte in zwei separate zu teilen, ist extract, die ebenfalls im Paket tidyr enthalten ist. Die Funktion extract arbeitet mit Spalten, die Gruppen mit regulären Ausdrücken verwenden. Beachten Sie, dass jede Gruppe regulärer Ausdrücke den Elementen im vorherigen Parameter zugeordnet werden sollte. Wenn die Gruppen und Elemente nicht übereinstimmen, hat die Ausgabe NA-Werte.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))

df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")

Ausgabe:

> df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")

   Name  Surname
1  John      Mae
2 Maude Lebowski
3   Mia      Amy
4  Andy    James

Verwenden Sie die Funktion str_split_fixed, um eine Spalte in R . in zwei Spalten aufzuteilen

Alternativ können wir die Funktion str_split_fixed aus dem Paket stringr verwenden. Es entspricht dem angegebenen Zeichenmuster und teilt den Zeichenvektor in die entsprechende Anzahl von Spalten auf. Der Benutzer kann jedoch die Anzahl der zurückzugebenden geteilten Elemente explizit übergeben. Als drittes Argument wird die Anzahl der Elemente übergeben.

library(dplyr)
library(tidyr)
library(stringr)

df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))

str_split_fixed(df$x, ", ", 2)

Ausgabe:

> str_split_fixed(df$x, ", ", 2)
     [,1]    [,2]      
[1,] "John"  "Mae"     
[2,] "Maude" "Lebowski"
[3,] "Mia"   "Amy"     
[4,] "Andy"  "James"
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook