r语言 - 获取 gsub 和管道返回替换,而不是整个字符串



我想使用%>%gsub来编写一个函数来替换字符串中的多个模式。但它不是返回带有替换字符的字符串,而是只返回替换:

> x <- 'abcdef'
> x %>% gsub('c', ' ')
[1] " "

在这种情况下,为什么不返回'ab def'

如何正确组合%>%gsub

两个选项: 命名参数:

x %>% gsub(pattern = 'c', replacement = ' ')

或者使用.来指示输入的去向:

x %>% gsub('c', ' ', .)

管道使以下函数默认将左侧作为第一个未命名参数,因此要使用gsub您需要命名以前的参数或显式显示左侧在函数调用中的放置位置。

这将引导您找到@YCR的解决方案

许多以这种方式运行的基本函数(没有将数据作为第一个参数(现在在包中具有等效项,例如purrrstringr

如果您要使用dplyr并且magrittr很多,您可能需要寻找它们。

在这种情况下,您可以使用stringr::str_replace_all

library(stringr)
x %>% str_replace_all('c', ' ')

最新更新