无法理解 %>%

时间:2021-03-09 22:27:54

标签: r magrittr

我在理解 %>%

时遇到了很多问题

我需要一个例子来理解这一点。这是我的简单示例:

v <- c("the cat the cat ran up the tree tree", "the dog ran up the up the tree", 
         "the squirrel squirrel ran up the tree")

所需的输出是:

"the cat ran up the tree"
"the dog ran up the tree"
"the squirrel ran up the tree"

我想参加:

v <- gsub('kat', 'cat', v) 
v <- gsub('dogg', 'dog', v) 
v <- gsub('squirrel', 'squirrrel', v)

并使用:

gsub('kat', 'cat', v) %>%
gsub('dogg', 'dog', v) %>%
gsub('squirrel', 'squirrrel', v)

有人可以帮我改正吗?

我收到错误:

Warning message:
In gsub(., "dogg", "dog", v) :
  argument 'pattern' has length > 1 and only the first element will be used

1 个答案:

答案 0 :(得分:2)

默认情况下,pipe 会将值放入下一个函数的第一个参数中。如果您需要将值放置在不同的参数位置,则需要使用特殊的 . 变量来指示您希望它去哪里。例如

v %>% 
  gsub('kat', 'cat', .) %>%
  gsub('dogg', 'dog', .) %>%
  gsub('squirrel', 'squirrrel', .)