A: як використовувати strsplit() із кількома роздільниками


Ви можете використовувати наступний базовий синтаксис із функцією strsplit() у R, щоб розділити рядок на частини на основі кількох роздільників:

 strsplit(my_string, ' [,& ]+ ')

У цьому конкретному прикладі рядок під назвою my_string розбивається щоразу, коли він зустрічає один із наступних трьох роздільників:

  • Замовити ( , )
  • Амперсанд ( & )
  • Площа

Зверніть увагу, що символи в дужках вказують, які розділювачі шукати, а знак + вказує на те, що в рядку може бути кілька роздільників (наприклад, у рядку може бути кілька пробілів).

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: використовуйте strsplit() із кількома роздільниками в R

Припустимо, у R є такий рядок:

 #create string
my_string <- 'this is a, string & with seven words'

Якщо ми використовуємо функцію strsplit() для розділення рядка кожного разу, коли зустрічається пробіл, це дасть такий результат:

 #split string based on spaces
strsplit(my_string, ' ')

[[1]]
 [1] "this" "is" "a," "string" "&" "with" "" ""      
 [9] “seven” “words”

Функція strsplit() розділяє рядок щоразу, коли зустрічається пробіл, але вона не може обробляти коми, амперсанди та кілька пробілів.

Щоб розділити рядок на основі кожного з цих роздільників, ми можемо використати такий синтаксис:

 #split string based on multiple delimiters
strsplit(my_string, ' [,& ]+ ')

[[1]]
[1] "this" "is" "a" "string" "with" "seven" "words" 

Ця функція здатна розділити рядок на основі трьох різних роздільників і правильно повертає лише ті слова в рядку, які нас цікавлять.

Зверніть увагу, що в цьому прикладі ми включили три розділювачі в дужках у функцію strsplit() , але ви можете вказати скільки завгодно роздільників.

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

У наступних посібниках пояснюється, як виконувати інші типові операції за допомогою dplyr:

Як використовувати функцію strsplit() у R для розділення елементів рядка
Як розділити рядок і отримати перший елемент у R
Як порахувати слова в рядку в R

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

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