我有两组数据。数据集包含以下列:Patient_name
,Drug_administered
,Date_of_administration
。有两种药物:X和Y.
我想从Set1中删除患者在获得药物X的14天内(在Set1中)获得药物Y(在Set2中)的行。
以下是数据集的外观:
SET1
Patient_name Drug_administered Date_of_administration
A x 3/6/2010
A x 4/7/2011
A x 4/8/2011
B x 6/18/2014
B x 6/19/2014
B x 7/19/2014
SET2
Patient_name Drug_administered Date_of_administration
A y 3/6/2009
A y 4/18/2011
A y 4/8/2014
B y 6/18/2013
B y 6/19/2013
B y 7/19/2013
例如,我想删除set1中患者A的第二个条目,因为他在接受药物X后14天内接受了药物Y.
如何在Excel或R中执行此操作?
答案 0 :(得分:2)
你可以试试这个:
colnames(set1) <- c("ID", "x.given", "x.date")
colnames(set2) <- c("ID", "y.given", "y.date")
both <- merge(set1, set2, by="ID")
subset(both, subset=abs(as.Date(x.date) - as.Date(y.date)) > 14))
它连接ID列上的数据集,然后将子集设置为管理日期的绝对差异大于14天的位置,从而消除x和y在14天内相互管理的情况。