QSC %>%
filter(str_detect(Type, 'Workshops') ) %>%
WorkshopName = str_sub('Staff or Resource Name', start = 8, end = -1)
Это терпит неудачу, потому что вам нужно использовать mutate
для создания новой переменной с dyplr
:
QSC %>%
filter(str_detect(Type, 'Workshops') ) %>%
mutate(WorkshopName = str_sub('Staff or Resource Name', start = 8, end = -1))
Более того, чтобы добиться того, что вы хотите в своем комментарии, выможно использовать ifelse
QSC %>%
mutate(WorkshopName = if_else(str_detect(Type, 'Workshops'), str_sub('Staff or Resource Name', start = 8, end = -1), NA))
Теперь:
QSC$WorkshopName <- str_split(QSC$WorkshopName,"\(", 1)
Сбой, потому что вам нужно дополнительное \, чтобы интерпретировать R (правильно:
QSC$WorkshopName <- str_split(QSC$WorkshopName,"\\(", 1)
Наконец,последний аргумент во всех трех str_split
равен 1 ... Я думаю, что это не имеет смысла. Если вы читаете ?str_split
n: количество возвращаемых частей. По умолчанию (Inf) используются всевозможные позиции разделения
Так что, если вы поставите 1, он вернет всю строку, вам нужно 2 или более. Если вы хотите получить первую часть после разделения, вам нужно это, чтобы высохраните часть до (первого) разделения и отбросьте то, что следует после
str_split(QSC$WorkshopName, "\\(")[[1]][1]
Best