我有一个如下所示的数据框:
grp1 <- c('A','A','A','A','A','A',
'B','B','B','B','B','B',
'C','C','C','C','C','C')
grp2 <- c('PQ2','PQ2','PQ2','PQ2','PQ2','PQ2',
'PL2','PL2','PL2','PL2','PL2','PL2',
'PN2','PN2','PN2','PN2','PN2','PN2')
grp3 <- c('ML2','ML2','ML2','ML2','ML2','ML2',
'MP2','MP2','MP2','MP2','MP2','MP2',
'MO2','MO2','MO2','MO2','MO2','MO2')
date <- c('2022-04-04','2022-04-05','2022-04-11','2022-04-12','2022-04-18','2022-04-19',
'2022-04-04','2022-04-05','2022-04-11','2022-04-12','2022-04-18','2022-04-19',
'2022-04-04','2022-04-05','2022-04-11','2022-04-12','2022-04-18','2022-04-19')
count <- c(1206, 1432, 333, 292, 1120, 1345, 1100, 1150, 245, 423, 1500, 1400, 1300, 1200, 400, 402, 1100, 1107)
df <- data.frame(cbind(grp1, grp2, grp3, date, count))
对于每个组,我想重新分配 4 月 11 日的计数值,以匹配 4 月 4 日看到的值。 4 月 12 日的值也是如此 - 我希望将它们重新分配为 4 月 5 日看到的值。
我知道我需要使用 case 语句或 ifelse 函数来完成这项工作,但我对如何写出它的逻辑有点困惑。 有没有一种更简单的方法或一个包可以一步完成此操作?