如何使用 magrittr 管道进行乘法运算
How to do multiplication with magrittr pipes
在 R 中制作 table 的传统方法:
data(mtcars)
round(100*prop.table(xtabs(~ gear + cyl, data = mtcars), 1), 2)
returns
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)
在 R 中制作 table 的传统方法:
data(mtcars)
round(100*prop.table(xtabs(~ gear + cyl, data = mtcars), 1), 2)
returns
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)