r - 使用带有 %like% 运算符的重新编码函数
问题描述
无论如何使用dplyr
%like% 运算符 fromDescTools
以及“其他”语句的 recode 函数?即如下所示:
library(tidyverse)
library(DescTools)
dat <- data.frame(NAME = c("Bill", "Billy", "Wibill", "Chris"))
dat %>%
mutate(NAME_2 = recode(NAME, "%Bill%" = "Willhelm", "Other"))
期望的输出是:
NAME NAME_2
Bill Willhelm
Billy Willhelm
Wibill Willhelm
Chris Other
解决方案
不是这样的recode()
。recode()
将特定值与特定替换匹配。mutate()
但是,使用and很容易实现您想要的输出if_else()
:
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%
如果您想要的输出不区分大小写,那么任何使用都会出现这种情况。)
推荐阅读
- vim - 如何映射
到 g:ycm_key_list_select_completion 和 ? - apache-spark - 尝试保存 pyspark 数据框时出错
- c# - 使用实体框架进行分组的前 5 个 LINQ 查询
- android - Android中的这种数据绑定方法是否适合生产使用?它是否包含隐藏的问题?
- django - pip打包一个django项目
- android - 在 Exoplayer 中加载视频时添加进度条加载器
- java - JOOQ - 将 fetchOne().into() 转换为 fetchValue(query)
- python - 在python中没有得到MSSQL存储过程的结果输出表
- python - 如何通过 Boto3 向 Lambda 发送图像字节?
- r - 在 ggplot2 中使用 ylim 时置信区间损坏