首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与%相似%运算符一起使用recode函数

与%相似%运算符一起使用recode函数
EN

Stack Overflow用户
提问于 2020-06-02 17:42:51
回答 2查看 82关注 0票数 0

不管怎么说,是否可以使用dplyr中的recode函数和来自DescTools的%like%操作符以及一个“other”语句?即如下所示:

代码语言:javascript
复制
library(tidyverse)
library(DescTools)

dat <- data.frame(NAME = c("Bill", "Billy", "Wibill", "Chris"))

dat %>%
  mutate(NAME_2 = recode(NAME, "%Bill%" = "Willhelm", "Other"))

期望的产出是:

代码语言:javascript
复制
NAME      NAME_2
Bill      Willhelm
Billy     Willhelm
Wibill    Willhelm
Chris     Other
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-02 18:08:20

这不是recode()的工作方式;recode()将特定的值与特定的替换相匹配。但是,使用mutate()if_else()很容易实现所需的输出。

代码语言:javascript
复制
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

(尽管您会注意到,我不得不考虑大写或小写的"Bill",如果您想要的输出不以这种方式区分大小写,%like%的任何用法都是如此。)

票数 1
EN

Stack Overflow用户

发布于 2020-06-02 19:10:24

greplbase R中的另一个选项

代码语言:javascript
复制
dat$NAME_2 <- with(dat, ifelse(grepl("Bill", NAME, ignore.case = TRUE), "Willhelm", "Other"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62158088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档