Как создать переменную из существующих переменных, чтобы новая переменная являлась кумулятивным суммированием переменной (var1), а var1 [1] == var2 [1] - PullRequest
0 голосов
/ 05 июля 2019

Я хотел бы получить новые данные, создавая дополнительные переменные из существующих с помощью одной функции.Я опубликовал результаты своих данных из Excel ниже. "WT" - это новая переменная, которая будет создана путем суммирования "W" и "W1".«Оценочный» - это еще одна переменная, которая будет создана с использованием первого значения «Фактического» * ​​1001 *, в то время как for i in 2:nrow(data), Estimated[i] is Estimated[i-1] + Change[i].

Day Actual  Change  Estimated   W   W1  WT
1   186.55  -24.20  186.5512051 150.9816575 108.5068806 259.4885381
2   165.83  -14.08  162.3463561 161.0925    63.11266186 224.2051619
3   155.42  -8.19   148.2676871 161.2860254 36.70926735 197.9952927
4   135.75  -4.76   140.0788766 183.3773607 21.35182179 204.7291825
5   132.27  -2.77   135.3158826 183.5233478 12.41921528 195.942563
6   128.50  -1.61   132.5455032 185.8537875 7.223594767 193.0773822
7   127.60  -0.94   130.9341213 189.6309519 4.201579583 193.8325315
8   123.12  -0.55   129.9968664 196.6067281 2.443834622 199.0505627
9   122.43  -0.32   129.4517153 200.9331242 1.421448183 202.3545724
10  123.49  -0.18   129.13463   202.8374037 0.826780551 203.6641843
11  126.17  -0.11   128.9501984 201.6633084 0.480894125 202.1442025
12  128.97  1.76    128.8429244 204.0241743 0   204.0241743
13  130.95  1.79    130.6037286 207.2370343 0   207.2370343
14  130.34  1.78    132.3922679 206.4310664 0   206.4310664
15  139.78  1.74    134.1738539 201.5581715 0   201.5581715
16  139.05  1.77    135.9133858 204.5833776 0   204.5833776
17  137.07  1.79    137.6790267 207.1880918 0   207.1880918

Я попытался выполнить следующее, хотя это не удалось:

Try <- function(ag,data) {
  data <- read_excel...
  ag = 1.20
  New <- data
  for (i in 1:nrow(New)) {
  New$WTT <- ag*(New$W + New$W1)
  New$Est[i] <- (New$Actual[1]*New$Day[i]<2)+ (New$Est[i-1] + New$Change[i-1])*(New$Day[i]>1)

  return(New)}
 }
newdata <- Try(ag=1.20, data = data) 

тогда я обнаружил Предупреждающие сообщения: 1: Неизвестный или неинициализированный столбец: 'Est'.Переменная 'Est' также не была создана

1 Ответ

0 голосов
/ 05 июля 2019

мне кажется, что уравнение для оценки равно Estimated[i] = Estimated[i-1] + Change[i-1] это верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...