Управляющие цифры / округление как аргумент в базовых функциях


При написании научных статей значения обычно представляются в виде округленных значений с одной, двумя или тремя цифрами, часто в зависимости от типа сообщаемого значения. Это означает, что каждый раз, например, когда я включаю встроенное значение mean в Rmarkdown, я должен добавить round в код.

Таким образом, я задаюсь вопросом: есть ли способ контролировать количество цифр вывода базовых функций, таких как, например, mean() в качестве дополнительного аргумента в функции mean()? На самом деле этот дополнительный аргумент был бы также нужно провести округление.

Очевидно, что существует несколько способов управления числом цифр, например round(), format() и sprintf() или указание количества цифр в глобальной опции. Я не хочу использовать последний вариант, так как мне нужно различное количество цифр в документе.

Итак, я хочу что-то вроде: mean(c(0.34333, 0.1728, 0.5789), digits=2)

, что дает тот же результат, что и: round(mean(c(0.34333, 0.1728, 0.5789)), 2)

Я знаю, это немного глупо, так как количество символов, которые нужно ввести, точно такое же в оба куска. Для меня ключевым отличием было бы то, что я мог бы написать , digits=2) непосредственно после ввода переменной и не нужно было бы прыгать в начало блока, чтобы добавить round( и в конце добавить , 2).

Есть идеи?

1 3

1 ответ:

Лучший способ, который я знаю, это использование оператора прямой трубы %>% из пакета magrittr

> library(magrittr)
> mean(c(0.34333, 0.1728, 0.5789))
[1] 0.36501
> mean(c(0.34333, 0.1728, 0.5789)) %>% round(3)
[1] 0.365
Следует также отметить, что пакет magrittr используется другим очень популярным пакетом dplyr, который предоставляет дополнительную функциональность для операций с фреймами данных. Поэтому, когда я использую трубопровод, я почти всегда пишу library(dplyr), в то время как magrittr остается за кадром.