Cara mengekstrak string antara karakter tertentu di r


Anda dapat menggunakan metode berikut untuk mengekstrak string antara karakter tertentu di R:

Metode 1: Ekstrak string antara karakter tertentu menggunakan Base R

 gsub(" .*char1 (.+) char2.*", "\\1 ", my_string)

Metode 2: Ekstrak string antara karakter tertentu menggunakan stringr

 library (stringr)

str_match(my_string, " char1\\s*(.*?)\\s*char2 ")[,2]

Kedua contoh ini mengekstrak string antara char1 dan char2 ke dalam my_string .

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut:

 #create data frame
df <- data. frame (team=c('team Mavs pro', 'team Heat pro', 'team Nets pro'),
                 dots=c(114, 135, 119))

#view data frame
df

           team points
1 Mavs pro team 114
2 team Heat pro 135
3 pro Nets team 119

Contoh 1: Ekstrak string antar karakter tertentu menggunakan Base R

Kode berikut menunjukkan cara mengekstrak string antara karakter tim dan pro untuk setiap baris di kolom tim bingkai data:

 #create new column that extracts string between team and pro
df$team_name <- gsub(" .*team (.+) pro.*", "\\1 ", df$team)

#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

Perhatikan bahwa kolom baru bernama nama_tim berisi string antara karakter tim dan pro untuk setiap baris di kolom tim pada bingkai data.

Terkait : Pengantar gsub() di R

Contoh 2: Ekstrak string di antara karakter tertentu menggunakan paket stringr

Kode berikut menunjukkan cara mengekstrak string antara karakter tim dan pro untuk setiap baris di kolom tim bingkai data menggunakan fungsi str_match() dari paket stringr di R:

 library (stringr)

#create new column that extracts string between team and pro
df$team_name <- str_match(df$team, " team\\s*(.*?)\\s*pro ")[,2]

#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

Perhatikan bahwa kolom baru bernama nama_tim berisi string antara karakter tim dan pro untuk setiap baris di kolom tim pada bingkai data.

Ini sesuai dengan hasil penggunaan fungsi gsub() di basis R.

Perhatikan bahwa fungsi str_match() mengembalikan matriks yang kolom pertama berisi string asli dan kolom kedua berisi substring yang diinginkan.

Jadi, kita harus menggunakan [,2] untuk mengekstrak kolom kedua saja dari matriks yang dikembalikan oleh fungsi str_match() .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:

Cara memilih kolom yang berisi string tertentu di R
Cara menghapus karakter dari string di R
Cara menemukan lokasi karakter dalam string di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *