我的数据框中有一列包含:
dat <- c(1.664140e-07, 2.988795e-07, 3.501572e-07, -3.790459e-07, 1.839657e-07, -3.303678e-08, 1.232856e-07, 3.652545e-07, -4.180682e-09, 6.088182e-08, 1.542207e-07, 1.015173e-07, 4.423879e-07, 1.729282e-07, 8.462837e-08, 2.670472e-07, 3.364679e-07, 2.827205e-07)
我想将其格式化以便在报告中打印。 当我使用时:
formated <- format(dat, digits = 4, scientific = TRUE, nsmall = 4)
我有:
[1] " 1.664e-07" " 2.989e-07" " 3.502e-07" "-3.790e-07" " 1.840e-07" "-3.304e-08" " 1.233e-07" " 3.653e-07" "-4.181e-09" " 6.088e-08"
[11] " 1.542e-07" " 1.015e-07" " 4.424e-07" " 1.729e-07" " 8.463e-08" " 2.670e-07" " 3.365e-07" " 2.827e-07"
为了与具有情人方差的其他表保持一致(相同的幂-07),我需要一种方法来格式化它,如下所示:
[1] " 1.664e-07" " 2.989e-07" " 3.502e-07" "-3.790e-07" " 1.840e-07" **"-0.330e-07"** " 1.233e-07" " 3.653e-07" **"-0.041e-07"** **" 0.608e-07"**
[11] " 1.542e-07" " 1.015e-07" " 4.424e-07" " 1.729e-07" **"0.846e-07"** " 2.670e-07" " 3.365e-07" " 2.827e-07"
是的。我知道这不是一个正确的科学记数法。但对于观众来说,该报告的目的是更清楚地看到这个系列与其他三个系列之间的区别。
我最好使用 gt 包,但我在这件事上很灵活。
这是一些快速的事情:
foo <- function(x) sprintf("%.3fe-07", x * 1e7)
foo(dat)
# [1] "1.664e-07" "2.989e-07" "3.502e-07" "-3.790e-07" "1.840e-07" "-0.330e-07" "1.233e-07"
# [8] "3.653e-07" "-0.042e-07" "0.609e-07" "1.542e-07" "1.015e-07" "4.424e-07" "1.729e-07"
# [15] "0.846e-07" "2.670e-07" "3.365e-07" "2.827e-07"