r - 替换包含模式“No”的多个字符串
问题描述
查看(有点)繁忙的调查数据,我想使用 stringR 和 str_replace() 将“否”的所有变体变成一个“否”。挑战在于,我一直观察到诸如“不,不,不”之类的观察结果,直到连续 9 次。
str_replace() 或其他函数可以一次收集所有这些变化吗?还是我应该纠正许多 str_replace 命令?
这是数据框的代表:
library(tidyverse)
library(stringr)
library(reprex)
dfr <- dput(global_filtered_numeric$x48_enforcement_participation [157:169])
dfr
[1] "No, No, No, No"
[2] "No"
[3] "yes"
[4] "yes"
[5] "No"
[6] "No"
[7] "No"
[8] "yes"
[9] "yes, Yes male, yes, yes, Yes male, Yes female, Yes female"
[10] "yes, yes"
[11] "yes, yes"
[12] "No"
[13] "No"
第一篇文章/Reprex - 所以我将测试 df 是否真的与 dput 一起出现!
解决方案
这里没有必要超出base R:
vec <- c("No, No, No, No", "No", "yes", "yes", "No", "No", "No", "yes", "yes, Yes male, yes, yes, Yes male, Yes female, Yes female", "yes, yes", "yes, yes", "No", "No")
ifelse(nchar(gsub("[no, ]", "", vec, ignore.case = TRUE)), vec, "no")
# [1] "no" "no"
# [3] "yes" "yes"
# [5] "no" "no"
# [7] "no" "yes"
# [9] "yes, Yes male, yes, yes, Yes male, Yes female, Yes female" "yes, yes"
# [11] "yes, yes" "no"
# [13] "no"
推荐阅读
- javascript - iphone上amChart的滚动图不合适
- python - Python3 UnicodeEncodingError
- autodesk-forge - 为什么在创建模型派生作业时不考虑 webhook 工作流?
- clojure - 尝试连接到 Datomic Cloud 时出现“SSL 没有有效的密钥库”错误
- mongodb - Mongo 文档:什么是查询、表达式、查询谓词和子句
- python - 在 Python 字典中使用带有 u8、u16 的 C 结构
- javascript - 语义ui反应表网格视图浮动卡问题
- c++ - 如何将先前的值存储到数组中
- angular-material - Angular5 - 禁用垫列表选项
- c - 获取 long long 数字的前两位