如何在R数据框中制作漂亮的“自动”数字格式?

问题描述 投票:0回答:1

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
....

R console

像这样导出时,导出文件看起来比RStudio控制台更讨厌:

write.table(rf_test,“ rf_test.dat”,sep =“ \ t”,row.names = FALSE,na =“ NA”)File with table

有这种格式的建议吗?

r formatting numeric
1个回答
0
投票

您是否尝试过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  

根据您的喜好更改整数除法运算符后的数字以调整截止点。

这项工作吗? :)

© www.soinside.com 2019 - 2024. All rights reserved.