Я работаю над фреймом данных с тремя столбцами, помеченными как id, time1 и time2. Образец:
df <-
structure(
list(
id = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L),
time1 = c(12L, 5L, 3L, 5L, 6L, 30L, 3L, 30L, 7L, 2L, 17L, 5L, 8L, 3L, 22L, 5L, 15L, 4L, 7L, 23L),
time2=c(23L,23L,23L,23L,23L,22L,22L,22L,22L,22L,25L,25L,25L,25L,25L,24L,24L,24L,24L,24L)
),
.Names = c("id", "time1","time2"),
class = "data.frame",
row.names = c(NA,-20L)
)
Я использую R и пытаюсь установить подмножество этих данных и заменить столбец time2
новым столбцом на основе следующих критериев:
Суммируйте значения time1
для каждого id
, пока оно не станет больше или равно соответствующему значению time2
для этого id
.
Замените ячейки в time1
, где суммы заканчиваются соответствующими значениями time2
для каждого id
.
Столбец time2
должен быть заменен новым столбцом, помеченным status
, который состоит из 0
и 1
. То есть status
принимает 1
для незамещенных значений time1
и 0
для всех замененных значений time1
.
В общем, я ожидаю увидеть что-то вроде этого:
df <-
structure(
list(
id = c(1L, 1L, 1L, 1L, 2L, 3L, 3L, 3L, 4L, 4L, 4L),
time1 = c(12L, 5L, 3L, 23, 22L, 17L, 5L, 25L, 5L, 15L, 24L),
status=c(1L,1L,1L,0L,0L,1L,1L,0L,1L,1L,0L)
),
.Names = c("id", "time1","status"),
class = "data.frame",
row.names = c(NA,-11L)
)
Я очень ценю любую помощь в этом.