У меня есть следующая таблица, которая содержит факторную переменную 'category' с двумя уровнями DH1 и DH2.У меня также есть интервальные значения для факторной переменной «от» и «до».
category = c('DH1','DH1','DH1','DH1','DH2','DH2')
from = c(356,366,367,368,401,402)
to = c(366,367,368,369,402,403)
df <- data.frame(category,from, to)
category from to
1 DH1 365 366
2 DH1 366 367
3 DH1 367 368
4 DH1 368 369
5 DH2 401 402
6 DH2 402 403
Мне нужно создать два новых столбца, которые могут выглядеть следующим образом, где, как только DH1 меняется на DH2, from1 начинается с 0 и to1 = to-from
category from to from1 to1
1 DH1 365 366 0 1
2 DH1 366 367 1 2
3 DH1 367 368 2 3
4 DH1 368 369 3 4
5 DH2 401 402 0 1
6 DH2 402 403 1 2
Я понимаю, что мне нужно иметь цикл for и проходить через категорию, затем иметь оператор if category[4] != category[5]
и на основании этого вычислять новые столбцы.Но есть ли более простой способ сделать это?