A: перевірте, чи містить рядок кілька підрядків
Ви можете використовувати такі методи в R, щоб перевірити, чи містить рядок кілька підрядків:
Спосіб 1. Перевірте, чи містить рядок один із кількох підрядків
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , any )
Цей конкретний синтаксис перевіряє, чи кожен рядок у стовпці team містить один із рядків, указаних у векторі рядків під назвою find_strings .
Спосіб 2. Перевірте, чи містить рядок кілька підрядків
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , all )
Цей конкретний синтаксис перевіряє, чи кожен рядок у стовпці team містить усі рядки, указані у векторі рядків під назвою find_strings .
У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних у R:
#create data frame
df = data. frame (team=c('Good East Team', 'Good West Team', 'Great East Team',
'Great West Team', 'Bad East Team', 'Bad West Team'),
points=c(93, 99, 105, 110, 85, 88))
#view data frame
df
team points
1 Good East Team 93
2 Good West Team 99
3 Great East Team 105
4 Great West Team 110
5 Bad East Team 85
6 Bad West Team 88
Приклад 1: Перевірте, чи містить рядок один із кількох підрядків
Ми можемо використати такий синтаксис, щоб перевірити, чи кожен рядок у стовпці team містить підрядок «Good» або «Is»:
#define substrings to look for
find_strings <- c(' Good ', ' East ')
#check if each string in team column contains either substring
df$good_or_east <- apply(sapply(find_strings, grepl, df$team), 1 , any )
#view updated data frame
df
team points good_or_east
1 Good East Team 93 TRUE
2 Good West Team 99 TRUE
3 Great East Team 105 TRUE
4 Great West Team 110 FALSE
5 Bad East Team 85 TRUE
6 Bad West Team 88 FALSE
Новий стовпець good_or_east повертає такі значення:
- ІСТИНА , якщо команда містить «Добре» або «Є»
- ЛОЖЬ, якщо в команді немає ні «Добре», ні «Схід»
Приклад 2 : перевірте, чи рядок містить кілька підрядків
Ми можемо використати наступний синтаксис, щоб перевірити, чи кожен рядок у стовпці team містить підрядок «Good» і «Is»:
#define substrings to look for
find_strings <- c(' Good ', ' East ')
#check if each string in team column contains either substring
df$good_and_east <- apply(sapply(find_strings, grepl, df$team), 1 , all )
#view updated data frame
df
team points good_and_east
1 Good East Team 93 TRUE
2 Good West Team 99 FALSE
3 Great East Team 105 FALSE
4 Great West Team 110 FALSE
5 Bad East Team 85 FALSE
6 Bad West Team 88 FALSE
Новий стовпець good_and_east повертає такі значення:
- ІСТИНА , якщо команда містить «Добре» та «Є»
- FALSE , якщо команда не містить «Добре» та «Є»
Зауважте, що повертається лише одне значення TRUE , оскільки існує лише одна назва команди, яка містить підрядок «Good» і підрядок «East».
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
A: Як перевірити, чи є символ у рядку
A: Як видалити пробіли з рядків
A: Як витягнути рядок між певними символами