gpt4 book ai didi

r - 将多个函数放入单个 dplyr 中,跨所有内容进行变异,例如更改多个不同的字符串

转载 作者:行者123 更新时间:2023-12-05 01:27:10 25 4
gpt4 key购买 nike

示例数据:

df1 = data.frame(x1 = rep(c("foo", "bar"), 4),
x2 = rep(c("FOO", "fix", "broke", "fix"), 2))

例如,我想更改多个不同的字符串,在本例中,将 foo 更改为 done 并将 bar 更改为 open 。我正在使用 stringrdplyr。是否可以在 ~ 之后放置多个函数,以便在同一行代码中跨所有列运行多个函数,而不是像上面的示例那样 acrosseverything 重复:

> df1%>%
+ mutate(across(everything(), ~ str_replace(.,"(?i)bar", "open")),
+ across(everything(), ~ str_replace(., "(?i)foo", "done")))
x1 x2
1 done done
2 open fix
3 done broke
4 open fix
5 done done
6 open fix
7 done broke
8 open fix

最佳答案

我想 tidyverse 的方法是使用管道运算符将多个函数链接在一起。这意味着您只需调用 across 一次。

df1 %>% 
mutate(across(everything(), ~ str_replace(.,"(?i)bar", "open") %>%
str_replace("(?i)foo", "done")))
x1 x2
1 done done
2 open fix
3 done broke
4 open fix
5 done done
6 open fix
7 done broke
8 open fix

关于r - 将多个函数放入单个 dplyr 中,跨所有内容进行变异,例如更改多个不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69714380/

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