Як витягти рядок між певними символами в r


Щоб витягти рядок між певними символами в R, можна використовувати такі методи:

Спосіб 1. Витягніть рядок між певними символами за допомогою Base R

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

Спосіб 2: Витягніть рядок між певними символами за допомогою stringr

 library (stringr)

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

Ці два приклади витягують рядок між char1 і char2 у my_string .

У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних:

 #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

Приклад 1: вилучення рядка між певними символами за допомогою Base R

Наступний код показує, як витягти рядок між символами team і pro для кожного рядка в стовпці team кадру даних:

 #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

Зауважте, що новий стовпець під назвою team_name містить рядок між символами team і pro для кожного рядка в стовпці team кадру даних.

Пов’язане : знайомство з gsub() у R

Приклад 2: Витягніть рядок між певними символами за допомогою пакета stringr

Наступний код показує, як витягти рядок між символами team і pro для кожного рядка в стовпці team кадру даних за допомогою функції str_match() пакета stringr у 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

Зауважте, що новий стовпець під назвою team_name містить рядок між символами team і pro для кожного рядка в стовпці team кадру даних.

Це відповідає результатам використання функції gsub() у базовому R.

Зауважте, що функція str_match() повертає матрицю, у якій перший стовпець містить оригінальні рядки, а другий стовпець містить підрядок, який вас цікавить.

Таким чином, ми повинні використовувати [,2] , щоб отримати лише другий стовпець із матриці, яку повертає функція str_match() .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в R:

Як вибрати стовпці, що містять певний рядок у R
Як видалити символи з рядка в R
Як знайти розташування символу в рядку в R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *