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: Як витягнути рядок між певними символами

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

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