Как округлить результат функции прогнозирования в r - PullRequest
1 голос
/ 07 мая 2020
a = today+1; b = today+7
new <- data.frame(t_date = as.Date(a:b ,origin = "2020-01-20"))
predict_date <- as.Date(a:b,origin="2020-01-20")
predict_date = c(as.character.Date(predict_date))  
Final <- cbind(predict_date,predict.lm(fit,new,interval = "confidence"))
knitr::kable(Final,caption = "This is the predictions for the world ")

The Output I got was this

Я хочу, чтобы результат был целым числом, Кто-нибудь, пожалуйста, помогите мне с этой проблемой!

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Чтобы контролировать количество цифр при печати вывода, установите для аргумента digits значение kable().

Чтобы контролировать точность фактических чисел, пользователь round().

Вот воспроизводимый пример.

library(dplyr)
library(knitr)

mdl <- lm(dist ~ speed, data = cars)

explanatory_data <- data.frame(
  speed = seq(0, 100, 10)
)

predictions <- explanatory_data %>% 
  mutate(
    dist = predict(mdl, explanatory_data)
  )

По умолчанию kable() печатает столько цифр, сколько getOption("digits").

predictions %>% 
  kable()

| speed|      dist|
|-----:|---------:|
|     0| -17.57909|
|    10|  21.74499|
|    20|  61.06908|
|    30| 100.39317|
|    40| 139.71726|
|    50| 179.04134|
|    60| 218.36543|
|    70| 257.68952|
|    80| 297.01361|
|    90| 336.33769|
|   100| 375.66178|

Измените это с помощью аргумента digits .

predictions %>% 
  kable(digits = 2)

| speed|   dist|
|-----:|------:|
|     0| -17.58|
|    10|  21.74|
|    20|  61.07|
|    30| 100.39|
|    40| 139.72|
|    50| 179.04|
|    60| 218.37|
|    70| 257.69|
|    80| 297.01|
|    90| 336.34|
|   100| 375.66|

Это не меняет базовый номер. Вы можете изменить точность с помощью round() (но обычно это плохая идея, поскольку дальнейшие вычисления будут менее точными).

predictions %>% 
  mutate(rounded_dist = round(dist, 2))

   speed      dist rounded_dist
1      0 -17.57909       -17.58
2     10  21.74499        21.74
3     20  61.06908        61.07
4     30 100.39317       100.39
5     40 139.71726       139.72
6     50 179.04134       179.04
7     60 218.36543       218.37
8     70 257.68952       257.69
9     80 297.01361       297.01
10    90 336.33769       336.34
11   100 375.66178       375.66
0 голосов
/ 09 мая 2020

это должно работать в вашем случае ->

Final$fit <- round(Final$fit)
Final$lwr <- round(Final$lwr)
Final$upr <- round(Final$upr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...