在数据帧R中的组中有条件地标记
我试图有条件地创建一个新变量Col3,并为以下数据框中大于等于2016的所有条目标记它:在数据帧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
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]))))