如何对r中预测函数的输出进行舍去。

问题描述 投票:0回答:1
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

我希望输出为整数,谁能帮我解决这个问题!

r rounding data-conversion predict
1个回答
1
投票

要控制打印输出的位数,请设置为 "1"。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
投票

这对你来说应该是可行的->

Final$fit <- round(Final$fit)
Final$lwr <- round(Final$lwr)
Final$upr <- round(Final$upr)
© www.soinside.com 2019 - 2024. All rights reserved.