У меня есть такой набор данных:
set.seed(71)
dat <- data.table(region = rep(c('A','B'), each=10),
place = rep(c('C','D'), 10),
start = sample.int(5, 20, replace = TRUE),
end = sample.int(10, 20, replace = TRUE),
count = sample.int(50, 20, replace = TRUE),
para1 = rnorm(20,3,1),
para2 = rnorm(20,4,1))
Я хотел бы перебрать эти данные, чтобы условно сгенерировать другую таблицу со следующими столбцами: регион, место, начало, конец, количество, count0 с потенциально более чем одной строкой для каждой строки в dat. в новой таблице данные для столбцов region, place и start будут скопированы из dat, а данные для столбцов end, count и count0 будут сгенерированы.
Вот правила перебора каждой строки данных:
end = end +1
if (count=0) {
count0=0
} else {
count0=start*para1 + end*para2
}
if (count0>count) {
count0=count
}
count = count -count0
Я пытался использовать комбинацию цикла for, оператора if и mutate, но не смог сделать это правильно.
Я ожидаю получить такую таблицу после прохождения первых двух строк данных:
region place start end count count0
A C 2 7 6.01673062 17.98326938
A C 2 8 0 6.01673062
A D 3 2 5.34392419 7.65607581
A D 3 3 0 5.34392419
the first two rows of dat I have are:
region place start end count para1 para2
A C 2 6 24 0.39412969 2.45643
A D 3 1 13 0.64372127 2.862456
==
, а не=
. - person akash87   schedule 15.05.2019