替换数据上的字符

标签 r dplyr

例如我想替换字符 "A"用于“Apple”和字符 "B"为“版纳”

junk <- data.frame(x = rep(LETTERS[1:4], 3), 
                   y = letters[1:12],
                   stringsAsFactors = FALSE)

这提供:
   x y
1  A a
2  B b
3  C c
4  D d
5  A e
6  B f
7  C g
8  D h
9  A i
10 B j
11 C k
12 D l

我试着用
library(dplyr)
library(stringr)

mutate_if(junk, 
          is.character, 
          str_replace_all, pattern = "A", replacement = "Apple")

但是,当我尝试对“B”执行相同操作时,它删除了“A”的先前替换。我想保留这两个结果。
mutate_if(junk, 
          is.character, 
          str_replace_all, pattern = "A", replacement = "Apple") 

我想同时保留结果“Apple”和“Bannana”

最佳答案

您可能正在寻找:

junk %>%
 mutate_if(is.character, str_replace_all, c("A" = "Apple", "B" = "Banana"))

        x y
1   Apple a
2  Banana b
3       C c
4       D d
5   Apple e
6  Banana f
7       C g
8       D h
9   Apple i
10 Banana j
11      C k
12      D l

关于替换数据上的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58511774/

相关文章:

r - 使用 ggplot 的 sec.axis 和非单调变换

r - 分组 data.fame 后的自定义函数

r - 如何使用字符对象使用 dplyr 重命名 R 中的列?

r - 使用 dplyr 中的 group_by 函数来操作 data.frame 对象集

r - "effects"和 `aov` 返回的 `lm` 是什么?

javascript - 如何在 Shiny 中保存带有绘制形状/点的传单 map ?

在 Ubuntu 上网本上运行 R 需要有关图形设备大小的帮助

r - 与Dplyr左连接,仅从另一个表中带来1个字段

r - 将第 1-12 周改为第 1 季度

r - 使用 Cowplot 获取使用 paste0 的绘图列表