Jak podzielić kolumnę na wiele kolumn w r (z przykładami)


Możesz użyć jednej z dwóch metod, aby podzielić kolumnę na wiele kolumn w R:

Metoda 1: Użyj str_split_fixed()

 library (stringr)

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

Metoda 2: Użyj oddzielnej()

 library (dplyr)
library (tidyr)

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

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Metoda 1: Użyj str_split_fixed()

Załóżmy, że mamy następującą ramkę danych:

 #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

Możemy użyć funkcji str_split_fixed() z pakietu stringr , aby podzielić kolumnę „player” na dwie nowe kolumny zwane „First” i „Last” w następujący sposób:

 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

Należy zwrócić uwagę, że na końcu ramki danych dodano dwie nowe kolumny.

Jeśli chcesz, możesz zmienić układ kolumn i usunąć oryginalne kolumny „gracz”:

 #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

Metoda 2: Użyj oddzielnej()

Poniższy kod pokazuje, jak użyć funkcji Separate() pakietu Tidyr do rozdzielenia kolumny „player” na kolumny „pierwszą” i „ostatnią”:

 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

Należy pamiętać, że funkcja Separate() oddziela ciągi na podstawie dowolnej wartości innej niż alfanumeryczna.

Na przykład, jeśli imię i nazwisko zostaną oddzielone przecinkiem, funkcja Separate() zostanie automatycznie podzielona na podstawie położenia przecinka:

 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

Pełną dokumentację online dotyczącą funkcji Separate() można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:

Jak połączyć dwie kolumny w jedną w R
Jak posortować ramkę danych według kolumny w R
Jak dodać kolumny do ramki danych w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *