用字符串替换列表中找到的字符串

标签 r tidyverse stringr

使用 tidyverse,跨越整个数据框,用字符串替换列表中找到的任何字符串。

df<- tribble(
  ~x, ~y,  ~z,
  "a", "95%",  "96%",
  "b", "99%",  "98%",
  "c", "astricks", "astricks"
)

high95 <- c("95%", "96%", "97%", "98%", "99%", "100%")

试图用字符串 ">95%"替换列表中的任何字符串 (high95)

df %>% str_replace(. %in% high95, ">95%")

我对字符串执行此操作是因为抑制将 col 更改为字符格式。

最佳答案

我们可以使用replace来创建逻辑表达式

library(dplyr)
df <- df %>% 
   mutate(across(y:z, ~ replace(., . %in% high95, ">95%")))

-输出

df
# A tibble: 3 × 3
  x     y        z       
  <chr> <chr>    <chr>   
1 a     >95%     >95%    
2 b     >95%     >95%    

关于用字符串替换列表中找到的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72619417/

相关文章:

在不改变其他词的情况下替换R中的文本

r - Unstack lubridate 的间隔类

R ggplot 从图例中删除某些项目

r - 计算时间!=

r - 如何避免在任何时间(<numeric>) "updates by reference"?

r - 使用 Dplyr 使用另一列中的相应值填充空单元格

r - 在循环中使用 mutate 函数

regex - 根据特定值创建新变量

r - 有没有更快的替代方法来计算 R 中 100,000 个短字符串的特殊字符?

r - 检测 R 中字符串的一部分(不完全匹配)