У меня есть проблема с кодированием, и я не знаю, как это сделать.
Мой набор данных выглядит примерно так
df <- data.frame("id" = c("id1", "id1", "id1", "id1", "id2", "id2","id2","id2"),
"time" = c(1,2,4,5,2,3,4,6),
"Treatmentid" = c("1", "2", "1a","3", "1", "4","4a","3"),
"Val" = c(2,3,5,1,2,7,4,1))
Где «id» указывает на предмет, «Treatmentid» указывает на лечение, которое получает субъект, а «Val» - это значение лечения.
Как правило, лечение является постоянным во времени, поэтому я хотел бы суммировать их для каждого человека, чтобы рассчитать общее лечение, которое он получает в каждый момент времени.
Проблема заключается в том, что некоторые виды леченияобозначенные «а», фактически заменяют, а не добавляют к обработке без а.
Следовательно, я бы хотел, чтобы мой окончательный набор данных выглядел примерно так
final <- data.frame("id" = c("id1", "id1", "id1", "id1", "id2", "id2","id2","id2"),
"time" = c(1,2,4,5,2,3,4,6),
"Treatmentid" = c("1", "2", "1a","3", "1", "4","4a","3"),
"Val" = c(2,3,5,1,2,7,4,1),
"totVal" = c(2,5,8,9,2,9,6,7))
.значения суммируются для разных «Treatementid» (то есть для id1 в момент времени 2, totVal = 2 + 3 = 5).В то время как они заменяются, когда в обработку вносятся изменения (т.е. для id1 в момент времени 4, totVal = 5 + 3 = 8).Здесь значение «Treatmentid 1a» (5) заменило значение «Treatmentid 1» (2).
Надеюсь, это понятно.
Благодарю всех вас заранее заваша помощь