R で列を 2つの列に分割する

胡金庫 2023年1月30日
  1. R で separate 関数を使用して列を 2つの列に分割する
  2. R で extract 関数を使用して列を 2つの列に分割する
  3. R で str_split_fixed 関数を使用して列を 2つの列に分割する
R で列を 2つの列に分割する

この記事では、R で separate を使用して列を 2つの列に分割する方法を紹介します。

R で separate 関数を使用して列を 2つの列に分割する

separatetidyr パッケージの一部であり、正規表現または数値の場所で文字列を複数の列に分割するために使用できます。このコード例では、名前と名前のペアのコンマ区切りの文字列を含むデータフレームを宣言します。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"
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook