Как преобразовать научную нотацию c в десятичную в таблицах? - PullRequest
1 голос
/ 31 января 2020

Несмотря на то, что, по сути, c, я нигде не могу найти ответ: как я могу отключить научную запись c в таблицах и вместо нее использовать десятичные дроби для отображения таблицы?

Мои данные

У меня есть простой тиббл, полученный из lm() %>% broom::tidy().

library(tidyverse)

## I used dput() to get this:

tidy_lm_output <- structure(list(term = c("(Intercept)", "mood", "sleep"), estimate = c(-0.00000000000000028697849703988, 
-0.0746522106739049, 0.835867664974019), std.error = c(0.0319620048196539, 
0.0464197056030362, 0.0464197056030362), statistic = c(-0.00000000000000897873893265334, 
-1.60820086435494, 18.006742053085), p.value = c(0.999999999999993, 
0.108628280589954, 9.41480010964234e-53)), row.names = c(NA, 
-3L), class = c("tbl_df", "tbl", "data.frame"))

> tidy_lm_output
## # A tibble: 3 x 5
##  term         estimate std.error statistic   p.value
##   <chr>           <dbl>     <dbl>     <dbl>     <dbl>
## 1 (Intercept) -2.87e-16    0.0320 -8.98e-15 10.00e- 1
## 2 mood        -7.47e- 2    0.0464 -1.61e+ 0  1.09e- 1
## 3 sleep        8.36e- 1    0.0464  1.80e+ 1  9.41e-53

Как ни странно, только столбец "std.error" отображается в десятичных числах, но все остальные столбцы в научной нотации c ,

Я бы хотел, чтобы все столбцы отображали информацию в десятичных числах, но все еще в виде таблицы.

Попытки решить эту проблему

  • go - решение options(scipen=999) не сработало.
  • Использование format(scientific = FALSE) также не сработало.

Этот вопрос задавали в других местах

  • Кто-то спросил здесь , но остался без ответа.

1 Ответ

2 голосов
/ 31 января 2020

Вы можете контролировать количество значащих цифр, напечатанных с помощью options(pillar.sigfig = 5).

tidy_lm_output
# A tibble: 3 x 5
  term           estimate std.error   statistic    p.value
  <chr>             <dbl>     <dbl>       <dbl>      <dbl>
1 (Intercept) -2.8698e-16  0.031962 -8.9787e-15 1.0000e+ 0
2 mood        -7.4652e- 2  0.046420 -1.6082e+ 0 1.0863e- 1
3 sleep        8.3587e- 1  0.046420  1.8007e+ 1 9.4148e-53

Для получения дополнительной информации о том, как форматировать тиблы, см. help(format.tbl)

Однако, если вы просто хотите округлить эти цифры вы можете сделать:

tidy_lm_output %>%
  mutate_if(is.numeric, round, 5)

# A tibble: 3 x 5
  term        estimate std.error statistic p.value
  <chr>          <dbl>     <dbl>     <dbl>   <dbl>
1 (Intercept)   0         0.0320      0      1    
2 mood         -0.0746    0.0464     -1.61   0.109
3 sleep         0.836     0.0464     18.0    0    
...