简体   繁体   English

如何将 R 中的负值更改为 0?

[英]How to change negative values to 0 of forecasts in R?

As the data is of rainfall, I want to replace the negative values both in point forecasts and intervals with 0. How can this be done in R?由于数据是降雨量,我想用0替换点预测和间隔中的负值。R如何做到这一点? Looking for the R codes that can make the required changes.寻找可以进行所需更改的 R 代码。

The Forecast values obtained in R using an ARIMA model are given below下面给出了使用 ARIMA model 在 R 中获得的预测值

> Predictions
         Point Forecast      Lo 80    Hi 80      Lo 95    Hi 95
Jan 2021     -1.6625108 -165.62072 162.2957 -252.41495 249.0899
Feb 2021      0.8439712 -165.57869 167.2666 -253.67752 255.3655
Mar 2021     35.9618300 -130.53491 202.4586 -218.67297 290.5966
Apr 2021     53.4407679 -113.05822 219.9398 -201.19746 308.0790
May 2021    206.7464927   40.24744 373.2455  -47.89184 461.3848
Jun 2021    436.2547446  269.75569 602.7538  181.61641 690.8931
Jul 2021    408.2814434  241.78239 574.7805  153.64311 662.9198
Aug 2021    431.7649076  265.26585 598.2640  177.12657 686.4032
Sep 2021    243.5520546   77.05300 410.0511  -11.08628 498.1904
Oct 2021    117.4581047  -49.04095 283.9572 -137.18023 372.0964
Nov 2021     25.0773401 -141.42171 191.5764 -229.56098 279.7157
Dec 2021     28.9468415 -137.55188 195.4456 -225.69098 283.5847
Jan 2022     -0.4912674 -171.51955 170.5370 -262.05645 261.0739
Feb 2022      2.2963271 -168.86759 173.4602 -259.47630 264.0690
Mar 2022     43.3561613 -127.81187 214.5242 -218.42275 305.1351
Apr 2022     48.6538398 -122.51431 219.8220 -213.12526 310.4329
May 2022    228.4762035   57.30805 399.6444  -33.30290 490.2553
Jun 2022    445.3540781  274.18592 616.5222  183.57497 707.1332
Jul 2022    441.8287867  270.66063 612.9969  180.04968 703.6079
Aug 2022    592.5766086  421.40845 763.7448  330.79751 854.3557
Sep 2022    220.6996396   49.53148 391.8678  -41.07946 482.4787
Oct 2022    158.7952154  -12.37294 329.9634 -102.98389 420.5743
Nov 2022     29.9052184 -141.26288 201.0733 -231.87380 291.6842
Dec 2022     25.9432583 -145.22303 197.1095 -235.83298 287.7195

You could iterate over the columns and take the max of 0 and the value.您可以遍历列并取最大值 0 和值。 For example:例如:

for (value in pointForecast) {
   value <- max(0, value)
}

In this context, try using:在这种情况下,尝试使用:

Predictions[Predictions < 0] <- 0

Which will replace all values less than 0 with 0. Because of the processing, the use of for loops is discouraged in applications where vectorization can be applied.它将用 0 替换所有小于 0 的值。由于处理的原因,在可以应用矢量化的应用程序中不鼓励使用for循环。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM