Я довольно новый с R, и я следил за многими учебниками за последние недели, чтобы улучшить себя на нем.R - Использование значения предыдущей строки на лету
Я пытаюсь достичь чего-то, чего я не уверен с R. Я хочу, из набора данных, вычислить новое значение, используя значение этого набора данных из другой строки.
Я получил простую таблицу ввода так:
InVal
1: 100
2: 10
3: -5
4: 10
И я хочу, чтобы вычислить для каждой строки, сумма Inval, если она положительна и повторно использовать предыдущий результат Inval, если нет.
Для этого я создал новые седловины и инициализировать его с 0 и добавить 0-строку для initData:
InVal Result
1: 0 0
2: 100 0
3: 10 0
4: -5 0
5: 10 0
Тогда я попробовал это ожидал, что это будет делать работу:
DT[ , Result := InVal + shift(Result, 1L, type="lag")]
Но я получить это:
InVal Result
1: 0 NA
2: 100 100
3: 10 10
4: -5 -5
5: 10 10
кажется R я, используя 0 в качестве результата для всех строк, а не фактический RESU Он вычисляет строку раньше. Я думал, что R исполнялся последовательно?
У вас есть идеи, как я могу достичь своей цели? Спасибо :)
Каков ваш ожидаемый выход? – akrun