为什么将管道运算符与上限功能相结合在 R 中不起作用?
Why combining pipeline operator with ceiling function doesn't work in R?
当我尝试使用 ceiling()
函数时,它工作正常,但是当我尝试使用管道运算符 (2/10 %>% ceiling())
划分某些内容并将其提供给上限函数时,我遇到了问题。
ceiling(0.2)
1
ceiling(2/10)
1
2/10
0.2
2/10 %>% ceiling()
0.2
2 %>% `/`(10)
0.2
2 %>% `/`(10) %>% ceiling()
1
0.2 %>% ceiling()
1
因为 2/10 %>% ceiling()
与 2/(10 %>% ceiling())
相同,即 %>%
优先于 /
。
换句话说,2/10 %>% ceiling()
= 2/10
= 0.2
一个magrittr
解决方案可以是:
2 %>%
divide_by(10) %>%
ceiling()
[1] 1
这是因为运算符的优先级。
您可以使用圆括号或大括号来阐明您想做什么
library(magrittr)
(2/10) %>% ceiling()
{2/10} %>% ceiling()
当我尝试使用 ceiling()
函数时,它工作正常,但是当我尝试使用管道运算符 (2/10 %>% ceiling())
划分某些内容并将其提供给上限函数时,我遇到了问题。
ceiling(0.2)
1
ceiling(2/10)
1
2/10
0.2
2/10 %>% ceiling()
0.2
2 %>% `/`(10)
0.2
2 %>% `/`(10) %>% ceiling()
1
0.2 %>% ceiling()
1
因为 2/10 %>% ceiling()
与 2/(10 %>% ceiling())
相同,即 %>%
优先于 /
。
换句话说,2/10 %>% ceiling()
= 2/10
= 0.2
一个magrittr
解决方案可以是:
2 %>%
divide_by(10) %>%
ceiling()
[1] 1
这是因为运算符的优先级。
您可以使用圆括号或大括号来阐明您想做什么
library(magrittr)
(2/10) %>% ceiling()
{2/10} %>% ceiling()