Вы можете просто использовать if_else()
, так как здесь только два случая. Регулярное выражение кажется более подходящим, учитывая тест, который вы пытаетесь запустить;ключ в том, что ^
задает начало строки, а [:alpha:]
соответствует буквам, без учета регистра.
library(tidyverse)
df <- data.frame(a=c("abc", "123", "abc", "123"))
df %>% mutate(
b = a %>% str_detect("^[:alpha:]") %>% if_else("letter", "number")
)
#> a b
#> 1 abc letter
#> 2 123 number
#> 3 abc letter
#> 4 123 number
Создано в 2019-09-29 с помощью Представьте пакет (v0.3.0)
Как указал @akrun, здесь есть проблема с коэффициентами и символами - вы уверены, что это подходящий пример для вашего варианта использования, т.е. ваши реальные данные в факторах? К счастью, str_detect()
работает так же хорошо в любом случае.