R:根据时间范围删除满足条件的行

时间:2019-01-30 18:09:19

标签: r time conditional-statements subset

我有1000个主题的数据,每个主题每个ID有多行。这是我数据中某人的摘录:

    ID      servicedate   firstdate     group      firstdateplus90
    AAA     01/01/2019    01/01/2019    A          04/01/2019
    AAA     03/01/2019    01/01/2019    B          04/01/2019

我想删除所有类似AAA的主题,其中从日期1开始的90天时间范围内,它们有一行表示它们在不同的组中。在上面的示例中,主题AAA从A组开始,但在04/01/2019之前(自日期1起90天)之前的2019年3月1日,它们位于B组中。

我首先尝试创建一个新变量,该变量告诉我们主题在第一次约会时所在的组:

mydata <- mydata %>% group_by(ID) %>%
mutate(first_group= {if(firstdate == servicedate) group[min(which(firstdate == servicedate))] else NA})

但是我真的不确定从这里走到哪里,或者是否有一种更简单的方法可以将firstdateplus90内的组与firstdate所在的组不相等的那些子集分离出来。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这对我有用:

public static void main (String [] args) throws ParserConfigurationException, SAXException, IOException, TransformerException {

  Source input  = new StreamSource("file:\test2\personne1.xml");
  Source xsl    = new StreamSource("file:\test2\filexsltFilePersonnes.xsl");
  Result output = new StreamResult(new File("file:\test2\resultFile.xml")); 
    TransformerFactory factory =new  net.sf.saxon.TransformerFactoryImpl();
        //TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(xsl);
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    transformer.transform(input, output);

  }