Вы пробовали использовать функцию format()
(или, если вы хотите более жесткий контроль над отображением чисел, функцию formatC()
)
Вы можете написать свою собственную функцию с целочисленным делением %/%
оператор внутри оператора if / else, чтобы решить, сколько десятичных чисел должно иметь число, прежде чем формат должен быть изменен. Примерно так:
test_func <- function(x){
res <- 0
res <- ifelse(x %/% 0.0001 > 0, format(x, scientific = FALSE, trim = TRUE), format(x, scientific = TRUE))
return(res)
}
Результат:
print(rf_test %>% mutate(RfD_per_new = test_func(RfD_per)), n = 26)
# A tibble: 26 x 5
RfC RfD_ing RfD_per RfD_derm RfD_per_new
<dbl> <dbl> <dbl> <dbl> <chr>
1 0.00002 NA 0.002 NA 0.00200
2 0.1 NA 11 NA 11.00000
3 0.005 0.00143 1 0.1 1.00000
4 0.03 NA 4 NA 4.00000
5 0.000070 NA 0.02 0.000070 0.02000
6 1 0.0000286 0.005 0.00006 0.00500
7 0.00005 0.0000143 0.14 0.00184 0.14000
8 0.6 NA 0.3 NA 0.30000
9 0.00002 0.00000571 0.02 0.016 0.02000
10 0.00005 NA 0.02 0.0054 0.02000
11 0.00002 0.0402 0.019 0.012 0.01900
12 0.0009 0.3 0.3 0.06 0.30000
13 0.04 NA NA NA NA
14 0.00003 0.000300 0.000300 0.000123 0.00030
15 0.00008 NA 0.005 NA 0.00500
16 0.012 NA 0.005 0.0019 0.00500
17 0.02 NA 0.005 0.0009 0.00500
18 0.00002 0.0000571 0.0005 0.00001 0.00050
19 0.02 NA 0.6 NA 0.60000
20 0.0004 0.000395 0.0004 0.000008 0.00040
21 0.0005 0.000143 0.07 0.0049 0.07000
22 0.0002 NA NA NA NA
23 0.1 NA 0.0025 NA 0.00250
24 0.000300 0.0000857 0.000300 0.000021 0.00030
25 0.00023 NA 0.000070 NA 7.0e-05
26 0.0005 0.00352 0.0035 0.000525 0.00350
Измените число после оператора целочисленного деления на свое усмотрение, чтобы настроить точку отсечения.
Будет ли это работать ? :)