R 根据列值条件多次按ID对行进行聚类
不久前,我在这篇文章中提出了一个相关的问题 假设我有以下df:R 根据列值条件多次按ID对行进行聚类,r,dataframe,dplyr,mutate,R,Dataframe,Dplyr,Mutate,不久前,我在这篇文章中提出了一个相关的问题 假设我有以下df: data <- data.frame(ID = c(1,1,1,1,1,1,1,1,1,1,1, 1, 1,1,1,1,1,1,1,1,1,1), Obs1 = c(1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,0,1), Control = c(0,3,3,1,12,1,1,1,36,13,1,1,2,24,2,2,48,24,20
data <- data.frame(ID = c(1,1,1,1,1,1,1,1,1,1,1, 1, 1,1,1,1,1,1,1,1,1,1),
Obs1 = c(1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,0,1),
Control = c(0,3,3,1,12,1,1,1,36,13,1,1,2,24,2,2,48,24,20,21,10,10),
ClusterObs1 = c(1,1,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,5,5,5,5,6))
data我不太知道如何使用whith()和rle()函数,但我必须使用ifelse来解决这个问题
data <- data %>% mutate (aux = ifelse (Control>12 & Obs1 == 1 & lag(Obs1) ==1,1,0),
DesiredResultClusterObs1 = ClusterObs1 + cumsum(aux))
data%变异(aux=ifelse(控制>12&Obs1==1&lag(Obs1)==1,1,0),
DesiredResultClusterObs1=ClusterObs1+cumsum(辅助))
aux变量不是必需的,它只是帮助逐步查看。您也可以执行以下操作
data <- data %>% mutate (DesiredResultClusterObs1 =
ClusterObs1 +
cumsum(ifelse (Control>12 & Obs1 == 1 & lag(Obs1) ==1,1,0)))
数据%突变(DesiredResultClusterObs1=
ClusterObs1+
累积和(如果其他(控制>12,Obs1==1,滞后(Obs1)==1,1,0)))
data <- data %>% mutate (DesiredResultClusterObs1 =
ClusterObs1 +
cumsum(ifelse (Control>12 & Obs1 == 1 & lag(Obs1) ==1,1,0)))