替换包含模式 "No" 的多个字符串
Replacing multiple strings that contain the pattern "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"
首先 post/Reprex - 所以我将测试 df 是否真的与 dput 一起出现!
此处无需超出 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"
使用 r2evans 的 vec
,您还可以使用 gsub
,如:
> gsub("N[Oo].+", "No", vec)
[1] "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"
查看(有些)繁忙的调查数据,我想使用 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"
首先 post/Reprex - 所以我将测试 df 是否真的与 dput 一起出现!
此处无需超出 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"
使用 r2evans 的 vec
,您还可以使用 gsub
,如:
> gsub("N[Oo].+", "No", vec)
[1] "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"