【发布时间】:2015-09-18 00:36:02
【问题描述】:
我从大量数据中获得了这些重复的记录。现在,我需要从这些重复的行中选择一行。
ID <- c("6820","6820","17413","17413","38553","38553","52760","52760","717841","717841","717841","747187","747187","747187")
date <- c("2014-06-12","2015-06-11","2014-05-01","2014-05-01","2014-06-12","2015-06-11","2014-10-24","2014-10-24","2014-05-01","2014-05-01","2014-12-02","2014-03-01","2014-05-12","2014-05-12")
type <- c("ST","ST","MC","MC","LC","LC","YA","YA","YA","YA","MC","LC","LC","MC")
level <-c("firsttime","new","new","active","active","active","firsttime","new","active","new","active","new","active","active")
data <- data.frame(ID,date,type,level)
我想比较一下:对于每个 ID,如果它们的日期不同,则将它们全部保存在 df.right 中;如果日期相同,则比较类型,按照LC>MC>YA>ST的顺序选择它们(例如选择MC而不是YA),将它们放入df.right;如果类型相同,则比较级别,按活动>新>第一次的顺序选择它们(例如,第一次选择新的),然后将选择的放入df.right。
我尝试使用 foreach,这只是第一步,它不适用于 ID 有 3 个重复行。
foreach (i=unique(data$ID), .combine='rbind') %do% {data[data$ID==i, "date"][1] == data[data$ID==i, "date"][2])
b <- data[data$ID==i,]}
【问题讨论】:
标签: r