R で列を 2つの列に分割する
胡金庫
2023年1月30日
-
R で
separate
関数を使用して列を 2つの列に分割する -
R で
extract
関数を使用して列を 2つの列に分割する -
R で
str_split_fixed
関数を使用して列を 2つの列に分割する
この記事では、R で separate
を使用して列を 2つの列に分割する方法を紹介します。
R で separate
関数を使用して列を 2つの列に分割する
separate
は tidyr
パッケージの一部であり、正規表現または数値の場所で文字列を複数の列に分割するために使用できます。このコード例では、名前と名前のペアのコンマ区切りの文字列を含むデータフレームを宣言します。separate
関数は、最初の引数としてデータフレームを取り、2 番目の引数として列名を取ります。3 番目の引数は、新しく作成された文字ベクトルの列名となる変数名を示します。%>%
パイプを使用して df
オブジェクトを separate
関数に渡すことに注意してください。名前と名前がドット区切り文字で区切られているデータフレームで、同じ関数呼び出しを呼び出すことができます。
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'))
出力:
> 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
R で extract
関数を使用して列を 2つの列に分割する
列を 2つの別々の列に分割するもう 1つの便利な関数は、tidyr
パッケージの一部でもある extract
です。extract
関数は、正規表現グループを使用する列で機能します。各正規表現グループは、前のパラメーターの項目にマップする必要があることに注意してください。グループとアイテムが一致しない場合、出力には 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"), "([^,]+), ([^)]+)")
出力:
> df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")
Name Surname
1 John Mae
2 Maude Lebowski
3 Mia Amy
4 Andy James
R で str_split_fixed
関数を使用して列を 2つの列に分割する
または、stringr
パッケージの str_split_fixed
関数を利用することもできます。指定された文字パターンに一致し、文字ベクトルを対応する列数に分割します。ただし、ユーザーは分割されたアイテムの数を明示的に渡して返すことができます。アイテムの数は、3 番目の引数として渡されます。
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)
出力:
> str_split_fixed(df$x, ", ", 2)
[,1] [,2]
[1,] "John" "Mae"
[2,] "Maude" "Lebowski"
[3,] "Mia" "Amy"
[4,] "Andy" "James"