Я печатаю следующий файл data.frame, и я ненавижу, что числа, подобные 349 и 57, печатаются в научной записи, см. Столбец '2.5%':
Mean SD P.value 2.5% 97.5% Time-series SE psrf psrf CI
b[1] 0.23852320 0.05569869 0.000 *** 1.402605e-01 0.35707199 0.0017095134 0.9999016 1.000003
b[2] 0.15168616 0.05645316 0.000 *** 4.155178e-02 0.26495673 0.0019034327 1.0031425 1.008611
b[3] 0.05807863 0.03886247 0.000 *** 3.315073e-07 0.14805463 0.0014782918 1.0053901 1.013379
b[4] 0.04353199 0.03252788 0.000 *** 2.194049e-08 0.12328049 0.0012016604 1.0023942 1.004400
Nsuper 404.22088889 30.97052370 0.000 *** 3.490000e+02 470.00000000 1.0517872620 1.0028975 1.010676
N[1] 97.52644444 24.28870256 0.000 *** 5.700000e+01 151.00000000 0.8022620656 1.0004164 1.001592
N[2] 126.41844444 22.53806189 0.000 *** 8.600000e+01 175.00000000 0.9843877604 1.0014555 1.004210
В столбце '97 .5% 'все в порядке, потому что не было небольших чисел, чтобы заставить научную запись. Как заставить принудительно использовать научную нотацию только для чисел, где это необходимо, в пределах одного столбца vector / data.frame? Требуемый результат примерно такой:
Mean SD P.value 2.5% 97.5% Time-series SE psrf psrf CI
b[1] 0.23852320 0.05569869 0.000 *** 1.4026e-01 0.35707199 0.0017095134 0.9999016 1.000003
b[2] 0.15168616 0.05645316 0.000 *** 4.1551e-02 0.26495673 0.0019034327 1.0031425 1.008611
b[3] 0.05807863 0.03886247 0.000 *** 3.3150e-07 0.14805463 0.0014782918 1.0053901 1.013379
b[4] 0.04353199 0.03252788 0.000 *** 2.1940e-08 0.12328049 0.0012016604 1.0023942 1.004400
Nsuper 404.22088889 30.97052370 0.000 *** 349.00000000 470.00000000 1.0517872620 1.0028975 1.010676
N[1] 97.52644444 24.28870256 0.000 *** 57.00000000 151.00000000 0.8022620656 1.0004164 1.001592
N[2] 126.41844444 22.53806189 0.000 *** 86.00000000 175.00000000 0.9843877604 1.0014555 1.004210
Я пытался использовать options(scipen = xx)
, но это может отключить научную запись для всех чисел, что мне не нужно: это смешно для очень маленьких чисел, таких как 1.0e-08.
Воспроизводимый пример: print(data.frame(a=1:3, b=c(1e-8, 230, 380)))
.