例如,将复合赋值管道运算符与 CrossTable 输出一起使用

Using compound assignment pipe operator with CrossTable output for example

提问人:Konrad 提问时间:12/21/2015 最后编辑:G5WKonrad 更新时间:12/10/2018 访问量:256

问:

我想使用复合分配管道运算符。例如,使用下面的代码,我可以生成具有所需比例的简单数据框:%<>%

data("mtcars")
Vectorize(require)(package = c("magrittr", "gmodels"),
                   character.only = TRUE)

mtcars_sum <- CrossTable(mtcars$am, mtcars$cyl)$prop.row

如图所示:

> head(mtcars_sum)
   y
x           4         6         8
  0 0.1578947 0.2105263 0.6315789
  1 0.6153846 0.2307692 0.1538462

我想进行相同的转换,但使用管道:%<>

mtcars_sum %<>%
  CrossTable(mtcars$am, mtcars$cyl)$prop.row

这将返回以下错误:

> mtcars_sum %<>%
+   CrossTable(mtcars$am, mtcars$cyl)$prop.row
Error in .$CrossTable(mtcars$am, mtcars$cyl) : 
  3 arguments passed to '$' which requires 2

我错过了什么?

R DataFrame DPLYR 交叉表 赋值运算符

评论

2赞 Benjamin 12/21/2015
仅当已存在时,运算符才起作用。它等价于 。由于您的调用具有指定的所有参数,并且管道也尝试分配给参数,因此您还有一个参数无法接受。%<>%mtcars_summtcars_sum <- mtcars_sum %>% CrossTable(...)$mtcars_sum$
0赞 Konrad 12/21/2015
感谢您的有用解释!

答: 暂无答案