Rで特定の文字以降の文字列を抽出する方法
次のメソッドを使用して、R の特定の文字の後の文字列を抽出できます。
方法 1: Base R を使用して特定の文字以降の文字列を抽出する
sub(' .*the ', '', my_string)
方法 2: stringr を使用して特定の文字以降の文字列を抽出する
library (stringr) str_replace(my_string, ' (.*?)the(.*?) ', ' \\1 ')
これらの例はどちらも、 my_string内の「the」パターンの後の文字列を抽出します。
次の例は、次のデータ フレームで各メソッドを実際に使用する方法を示しています。
#create data frame
df <- data. frame (team=c('theMavs', 'theHeat', 'theNets', 'theRockets'),
dots=c(114, 135, 119, 140))
#view data frame
df
team points
1 theMavs 114
2 theHeat 135
3 theNets 119
4 theRockets 140
例 1: Base R を使用して特定の文字の後の文字列を抽出する
次のコードは、データ フレームのチーム列の各行の「the」の後の文字列を抽出する方法を示しています。
#create new column that extracts string after "the" in team column df$team_name <- sub(' .*the ', '', df$team) #view updated data frame df team points team_name 1 theMavs 114 Mavs 2 theHeat 135 Heat 3 theNets 119 Nets 4 theRockets 140 Rockets
Team_nameという新しい列には、データ フレームのチーム列の各行の「the」の後の文字列が含まれることに注意してください。
関連: R の sub() の概要
例 2: stringr パッケージを使用して特定の文字の後の文字列を抽出する
次のコードは、R のstringrパッケージのstr_replace()関数を使用して、データ フレームのチーム列の各行の「the」の後の文字列を抽出する方法を示しています。
library (stringr) #create new column that extracts string after "the" in team column df$team_name <- str_replace(df$team, ' (.*?)the(.*?)', '\\1 ') #view updated data frame df team points team_name 1 Mavs pro team 114 Mavs 2 team Heat pro 135 Heat 3 Nets pro team 119 Nets
Team_nameという新しい列には、データ フレームのチーム列の各行の「the」の後の文字列が含まれることに注意してください。
これは、ベース R でsub()関数を使用した結果と一致します。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。