R语言中%<>%运算符是什么意思?

4
  1. %<>% 运算符在 R 中是什么作用?
  2. 使用 %<>%<- 有什么区别?
  3. 在什么样的情况下可以使用 %<>%

2
它类似于data.table中的:= - akrun
2
@akrun 它会原地更新吗?这就是 := 的全部意义。 - jangorecki
可能是What does %>% mean in R的重复问题。 - John Paul
1个回答

16

如果你使用magrittr的复合赋值管道运算符并且遇到问题,那么 ?magrittr::`%<>%` 可以帮助你解答所有疑问:

[...] %<>% 用于通过将数值先传递到一个或多个rhs表达式中并将结果赋回来更新数值。例如,some_object %<>% foo %>% bar 等同于 some_object <- some_object %>% foo %>% bar。它必须是管道链中的第一个管道运算符,但除此之外与 %>% 的用法相同。

因此,

library(magrittr)
set.seed(1);x <- rnorm(5)
x %<>% abs %>% sort
x
# [1] 0.1836433 0.3295078 0.6264538 0.8356286 1.5952808

与...相同

set.seed(1);x <- rnorm(5)
x <- sort(abs(x))
x
# [1] 0.1836433 0.3295078 0.6264538 0.8356286 1.5952808

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接