R 对%like%运算符使用重新编码功能
是否可以将R 对%like%运算符使用重新编码功能,r,tidyverse,R,Tidyverse,是否可以将dplyr中的recode函数与DescTools中的%like%运算符以及“other”语句一起使用?i、 e.如下所示: library(tidyverse) library(DescTools) dat <- data.frame(NAME = c("Bill", "Billy", "Wibill", "Chris")) dat %>% mutate(NAME_2 = recode(NAME, "%Bill%" = "Willhelm", "Other"))
dplyr
中的recode函数与DescTools
中的%like%运算符以及“other”语句一起使用?i、 e.如下所示:
library(tidyverse)
library(DescTools)
dat <- data.frame(NAME = c("Bill", "Billy", "Wibill", "Chris"))
dat %>%
mutate(NAME_2 = recode(NAME, "%Bill%" = "Willhelm", "Other"))
这不是
recode()
的工作原理<代码>重新编码()将特定值与特定替换匹配。但是,使用mutate()
和if\u else()
可以轻松实现所需的输出:
(虽然你会注意到我必须解释大写或小写的“Bill”,如果你想要的输出不区分大小写,那么任何使用
%like%
的情况都是如此。)另一个选项是base R中的grepl
dat$NAME_2 <- with(dat, ifelse(grepl("Bill", NAME, ignore.case = TRUE), "Willhelm", "Other"))
dat$NAME\u 2
dat %>%
mutate(NAME_2 = if_else(NAME %like% "%[Bb]ill%", "Willhelm", "Other"))
NAME NAME_2
1 Bill Willhelm
2 Billy Willhelm
3 Wibill Willhelm
4 Chris Other
dat$NAME_2 <- with(dat, ifelse(grepl("Bill", NAME, ignore.case = TRUE), "Willhelm", "Other"))