12

在 R 中制作表格的传统方法:

data(mtcars)

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

返回

   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,我尝试过:

library(magrittr)

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

到目前为止效果很好

    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

但是任何尝试执行下一部分,其中我将比例转换为百分比,然后四舍五入,都会导致错误。例如:

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

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

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

4

1 回答 1

28

您需要加上*引号 - "*"(),也可以1用作您的参数prop.table以匹配示例。

mtcars %>%
  xtabs(~ gear + cyl, data = .) %>%
  prop.table(., 1) %>%
  "*"(100 ) %>% round(.,2)
于 2015-01-26T18:22:03.310 回答