R或R studio中是否有任何选项可用于“自动”显示或导出数字。就像我在一列中有一个非常小的数字,例如0.000023一样,它应该被显示或导出为“ 2.3e-05”,但另一个数字(例如10.23)应按“原样”显示而不将其更改为“指数”格式。>
rf_test
RfC RfD_ing RfD_per RfD_derm
2 0.00002 NA 2.0e-03 NA
3 0.10000 NA 1.1e+01 NA
4 0.00500 1.43e-03 1.0e+00 0.100000
5 0.03000 NA 4.0e+00 NA
6 0.00007 NA 2.0e-02 0.000070
7 1.00000 2.86e-05 5.0e-03 0.000060
8 0.00005 1.43e-05 1.4e-01 0.001840
....
像这样导出时,导出文件看起来比RStudio控制台更讨厌:
write.table(rf_test,“ rf_test.dat”,sep =“ \ t”,row.names = FALSE,na =“ NA”)File with table
有这种格式的建议吗?
您是否尝试过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
根据您的喜好更改整数除法运算符后的数字以调整截止点。
这项工作吗? :)