在数据帧R中的组中有条件地标记

在数据帧R中的组中有条件地标记,r,dataframe,dplyr,group-by,label,R,Dataframe,Dplyr,Group By,Label,我试图有条件地创建一个新变量Col3,并为以下数据框中大于等于2016的所有条目标记它: Data_Frame <- data.frame(Col1 = c("A1", "A1", "A1", "A1", "A1", "A1", "A1", "A2", "A2", "A2", "A3

我试图有条件地创建一个新变量Col3,并为以下数据框中大于等于2016的所有条目标记它:

Data_Frame <- data.frame(Col1 = c("A1", "A1", "A1", "A1", "A1", "A1", "A1", "A2", "A2", "A2", "A3", "A3", "A3", "A3", "A3"), 
                         
                         Col2 = c(2010, 2016, 2019, 2019, 2020, 2020, 2020, 2017, 2018, 2021, 2002, 2009, 2020, 2020, 2021))
Data_Frame=2016必须从1开始标记在Col3中,所有满足Col2%的都会发生变异(Col3=match(Col2,unique(Col2)))
标记组中的所有内容,如下面的快照所示:

并且,使用下面的代码

Data_Frame <- Data_Frame %>% group_by(Col1) %>% mutate(Col3 = ifelse(Col2 <=2015, 0, match(Col2, unique(Col2))))
Data\u Frame%group\u by(Col1)%%>%mutate(Col3=ifelse)(Col2这是您想要的吗

Data_Frame <- Data_Frame %>% 
 group_by(Col1) %>% 
 mutate(Col3 = ifelse(Col2 <=2015, 0, match(Col2, unique(Col2[Col2 > 2015]))))
数据帧%
分组依据(Col1)%>%
突变(Col3=ifelse(Col2 2015]))
在ifelse中,
unique(Col2)
仍然引用
Col2
中的所有条目。因此,您应该将其子集化为仍要包含的数据

Data_Frame <- Data_Frame %>% 
 group_by(Col1) %>% 
 mutate(Col3 = ifelse(Col2 <=2015, 0, match(Col2, unique(Col2[Col2 > 2015]))))