匹配矢量与R中的模式向量

时间:2016-01-18 22:04:06

标签: r

给定一个网址矢量,我想过滤这些网址,并仅显示匹配一组模式的网址。

bpel:doXslTransform("getNamespace.xsl", $Var.message/tns1:Body/tns2:Container/tns2:Object[1])

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions">
   <xsl:output method="xml"/>

   <xsl:template match="child::node[position()=1]">
     <xsl:value-of select="namespace-uri(.)"/>
   </xsl:template>

我目前正在使用data.table包。用于匹配具有单个模式的向量我使用

/pages/
/econo/*
/categ/sub 

对于多种模式,这不起作用

urls[! urls %like% "/pages" ]

1 个答案:

答案 0 :(得分:1)

使用|分隔模式:

urls[! urls %like% paste(c("/pages/","/categ/sub"),collapse="|")  ]

示例:

DT <- data.table(a = paste0(letters,rev(letters)))
DT[a %like% paste(c("a","b","c"),collapse="|")]

编辑:这也可以在没有data.table包的情况下使用:

   vector <- paste0(letters,rev(letters))
   patterns <- c("a","b","c")
   matches <- unique(grep(paste(patterns,collapse="|"), 
                        vector, value=TRUE))