如何做乘法magrittr管
问题描述:
制作表R中的一种传统方式:如何做乘法magrittr管
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 * .
都会导致错误。我错过了什么?
答
您需要把*
放在引号中 - "*"()
,也可以用1
作为参数prop.table
来匹配例子。
mtcars %>%
xtabs(~ gear + cyl, data = .) %>%
prop.table(., 1) %>%
"*"(100) %>% round(.,2)
+0
太棒了,谢谢。 – tomw 2015-01-26 18:28:34
在你的例子中,边距是用于行,在'magrittr'中,你使用'columns'。 (。,1)%>%multiply_by(100)%>%round(。,2)' – akrun 2015-01-26 18:22:06
请参阅http:// data> stackoverflow.com/a/27364575/3871924 – agenis 2015-01-26 18:22:24
@ akrun - 感谢您的支持,上面已经更正。 – tomw 2015-01-26 18:25:53