R で列を 2つの列に分割する
胡金庫
2023年1月30日
R
R Separate
-
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"
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
