Dividi colonna in due colonne in R
-
Usa la funzione
separata
per dividere la colonna in due colonne in R -
Usa la funzione
extract
per dividere la colonna in due colonne in R -
Usa la funzione
str_split_fixed
per dividere la colonna in due colonne in R
Questo articolo introdurrà come dividere una colonna in due colonne usando separate
in R.
Usa la funzione separata
per dividere la colonna in due colonne in R
separate
fa parte del pacchetto tidyr
e può essere usato per dividere una colonna di caratteri in più colonne con espressioni regolari o posizioni numeriche. In questo esempio di codice, dichiariamo un frame di dati che contiene stringhe separate da virgole di coppie nome/cognome. La funzione separate
prende il frame di dati come primo argomento e il nome della colonna come secondo argomento. Il terzo argomento denota i nomi delle variabili che saranno i nomi delle colonne di un vettore di caratteri appena creato. Nota che usiamo la pipe %>%
per passare l’oggetto df
alla funzione separate
. La stessa chiamata di funzione può essere invocata sul data frame dove nome e cognome sono delimitati da un punto separatore.
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'))
Produzione:
> 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
Usa la funzione extract
per dividere la colonna in due colonne in R
Un’altra funzione utile per dividere una colonna in due separate è extract
, anch’essa parte del pacchetto tidyr
. La funzione extract
funziona su colonne utilizzando gruppi di espressioni regolari. Si noti che ogni gruppo di espressioni regolari deve essere mappato agli elementi nel parametro precedente. Se i gruppi e gli elementi non corrispondono, l’output avrà valori NA
.
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"), "([^,]+), ([^)]+)")
Produzione:
> df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")
Name Surname
1 John Mae
2 Maude Lebowski
3 Mia Amy
4 Andy James
Usa la funzione str_split_fixed
per dividere la colonna in due colonne in R
In alternativa, possiamo utilizzare la funzione str_split_fixed
dal pacchetto stringr
. Corrisponde al modello di carattere dato e divide il vettore di caratteri nel numero corrispondente di colonne. Tuttavia, l’utente può passare esplicitamente il numero di elementi divisi da restituire. Il numero di elementi viene passato come terzo argomento.
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)
Produzione:
> str_split_fixed(df$x, ", ", 2)
[,1] [,2]
[1,] "John" "Mae"
[2,] "Maude" "Lebowski"
[3,] "Mia" "Amy"
[4,] "Andy" "James"
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