% mutate-6ren">
gpt4 book ai didi

r - stringr:通过字符向量提供模式来替换字符串

转载 作者:行者123 更新时间:2023-12-02 09:12:45 25 4
gpt4 key购买 nike

这是我的数据:

df <- tibble::tribble(
~A, ~B,
"C", "G",
"D", "H",
"E", "I",
"F", "J")

value1 <- "D"

value2 <- "C"

并且,在变量 A 中,我想用“m”和“n”替换 D 和 C,类似这样的东西,但它不起作用!

df %>% mutate(X = A %>% str_replace_all(c(value1 = "m", value2 = "n")))

我想要的输出是:

df %>% mutate(X = A %>% str_replace_all(c("D" = "m", "C" = "n")))

但是我不想手动提供“D”和“C”,而是想以编程方式提供这些,符合...使用 value1 和 value2。

我该怎么做?

最佳答案

您可以尝试使用 setNames 设置 mn 的名称,如下所示:

library(dplyr)
library(stringr)
df %>% mutate(X = A %>% str_replace_all(setNames(c("m","n"), c(value1, value2))))

# A tibble: 4 x 3
# A B X
# <chr> <chr> <chr>
#1 C G n
#2 D H m
#3 E I E
#4 F J F

然后检查它是否等于您想要的结果:

identical(
df %>% mutate(X = A %>% str_replace_all(c("D" = "m", "C" = "n"))),
df %>% mutate(X = A %>% str_replace_all(setNames(c("m","n"), c(value1, value2)))))
#[1] TRUE

我还包括了您使用的其他软件包:dplyr 和 stringr

关于r - stringr:通过字符向量提供模式来替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50339803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com