合并日期不在彼此范围内的数据集

时间:2015-02-25 20:24:36

标签: r excel

我有两组数据。数据集包含以下列:Patient_nameDrug_administeredDate_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中执行此操作?

1 个答案:

答案 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天内相互管理的情况。