我想使用%>%
和gsub
来编写一个替换字符串中多个模式的函数。但是它不是返回带有替换字符的字符串,而只返回替换字符:
> x <- 'abcdef'
> x %>% gsub('c', ' ')
[1] " "
为什么在这种情况下不会返回'ab def'
?
如何正确合并%>%
和gsub
?
答案 0 :(得分:2)
两种选择: 命名参数:
x %>% gsub(pattern = 'c', replacement = ' ')
或使用.
指示输入的位置:
x %>% gsub('c', ' ', .)
答案 1 :(得分:0)
管道使得以下函数默认采用左侧作为第一个未命名的参数,因此要使用gsub
,您需要命名以前的参数或明确显示将左侧放在函数调用中的位置。
这将引导您进入@YCR的解决方案
许多以这种方式运行的基本函数(不将数据作为第一个参数)现在在purrr
或stringr
等包中具有等价物。
如果您要经常使用dplyr
和magrittr
,可能需要查找它们。
在这种情况下,您可以使用stringr::str_replace_all
library(stringr)
x %>% str_replace_all('c', ' ')