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