Это то, на что похоже моя таблица данных. Последний столбец New_Amount - это мой желаемый столбец.Обновление динамической и условной столбцов в data.table
StartingAmount<-10
library(data.table)
dt <- fread('
Level Interest New_Amount
0 .5 10
1 .5 15
0 .5 15
0 .3 15
1 .2 18
0 .4 18
1 .5 27
')
Допустим, я начинаю с 10 долларов США. Для каждой строки, где Level = 1, я хочу рассчитать свою новую сумму после добавления в процентах. Итак, для второй строки, где Level = 1, мой New_Amount равен 10+ (10 * .5) = 15. В 5-й строке, где Level = 1, мой New_Amount равен 15+ (15 * .2) = 18. Я буду игнорировать строки, где Level = 0, и просто переносить последнее наблюдение вперед.
Это моя попытка:
dt[, NewAmount:= ifelse(Level==1,StartingAmount+StartingAmount*Interest,0)]
dt[, NewAmount:= ifelse(Level==1, New_Amount + New_Amount*Interest , NA)]
Спасибо за ваш ответ! Это отличное решение. – gibbz00
@ gibbz00 Добро пожаловать. Надеюсь, поможет! – Psidom