首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用magrittr管进行乘法

如何用magrittr管进行乘法
EN

Stack Overflow用户
提问于 2015-01-26 18:13:18
回答 1查看 4.3K关注 0票数 14

用R制作表格的传统方法:

代码语言:javascript
复制
data(mtcars)

round(100*prop.table(xtabs(~ gear + cyl, data = mtcars), 1), 2)

返回

代码语言:javascript
复制
   cyl
gear     4     6     8
  3  6.67 13.33 80.00
  4 66.67 33.33  0.00
  5 40.00 20.00 40.00

为了使用magrittr管道复制这一点,我尝试了:

代码语言:javascript
复制
library(magrittr)

mtcars %>%
 xtabs(~ gear + cyl, data = .) %>%
 prop.table(., 1)

到目前为止效果很好

代码语言:javascript
复制
    cyl
gear          4          6          8
   3 0.06666667 0.13333333 0.80000000
   4 0.66666667 0.33333333 0.00000000
   5 0.40000000 0.20000000 0.40000000

但任何试图执行下一部分,其中我转换成百分比,然后轮,结果是一个错误。例如:

代码语言:javascript
复制
mtcars %>%
  xtabs(~ gear + cyl, data = .) %>%
  100*prop.table(., 1)

代码语言:javascript
复制
mtcars %>%
  xtabs(~ gear + cyl, data = .) %>%
  prop.table(., 1) %>%
  100 * .

都会导致错误。我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-26 18:22:03

您需要将*放在引号- "*"()中,还需要在prop.table中使用1作为参数来匹配示例。

代码语言:javascript
复制
mtcars %>%
  xtabs(~ gear + cyl, data = .) %>%
  prop.table(., 1) %>%
  "*"(100 ) %>% round(.,2)
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28156125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档