←
PDF 294 / 520 - If you're working with functions that don't have a data frame– based API (i.e., you pass them
→
English · PDF 294
Original PDF page 294
中文 · PDF 294
  • 如果你使用的函数没有基于数据框的 API(即,你传递给它们的是单独的向量,而不是数据框以及要在该数据框上下文中求值的表达式),那么你可能会发现 %$% 很有用。它会将数据框中的变量“展开”,以便你可以显式地引用它们。在使用 base R 中的许多函数时这很有用:

mtcars %$% cor(disp, mpg) #> [1] -0.848

  • 对于赋值操作,magrittr 提供了 %<>% 运算符,它允许你将如下代码:

mtcars <- mtcars %>% transform(cyl = cyl * 2)

替换为:

mtcars %<>% transform(cyl = cyl * 2)

我不喜欢这个运算符,因为我认为赋值是一种非常特殊的操作,它发生时应该始终清晰明了。在我看来,为了使赋值更加明确,一点点重复(即,重复两次对象的名称)是可以接受的。