R: трубопровод (%>%) не работает с круглым (). Пример: 136/13,00 %>% round() = 10,46154
Почему 136/13.00 %>% round()
вернуть 10? Тот же вход без пайпера возвращает правильное значение
136/13.00 %>% round()
[1] 10.46154
> round(136/13.00)
[1] 10
10.46154 %>% round()
[1] 10
2 ответа
Похоже на приоритет оператора
(136/13) %>%
round
#[1] 10
Мы также можем сделать его немного более цепким
136 %>%
`/`(13) %>%
round
#[1] 10
Из-за приоритета оператора. %any%
операторы имеют более высокий приоритет, чем, например, /
, Итак, раунд сначала применяется к 13 (ничего не меняя), затем 136 делится на 13.
Хочу продолжить эту тему. Ошибка возникает, когда я пытаюсь использовать раунд в самом низу кода. Я хочу округлить с двойной точностью:
customers <- data_XYZ %>%
group_by(Client) %>%
summarise(count = n(),
mean = mean(Cost_1, na.rm = TRUE),
sd = sd(Cost_1, na.rm = TRUE)) %>%
filter(.,!is.nan(sd)) %>%
round([mean:sd],2)