除了R

时间:2015-09-21 23:49:44

标签: regex r grep regex-negation gsub

我试图匹配R中除特定字符串以外的所有内容,并且我已经看到了一大堆关于negative lookaround,的帖子,但我还没有得到了这个。

我有一个数据集来查看SF中的犯罪事件,我想对具有解决方案或不具有解决方案的案例进行排序。在决议字段中,案件列出的内容包括预订逮捕,引用逮捕,少年预订等,或者没有。我想重新审视所有具体的决议,如不同的逮捕,以及#34;已解决的"并使用" NONE"保持实例。因此。所以,我认为我可以gsub或grep for not" NONE"。

基于我在查找除一个特定字符串之外的所有字符串时所阅读的内容,我认为这样可行:

resolution_vector = grep("^(?!NONE$).*", trainData$Resolution, fixed=TRUE)

我制作一个矢量来搜索我的训练数据集,特别是分辨率列,并找到不是&#t;#34; NONE"的术语。但是,我只是得到一个空的载体。

有没有人有建议,或者知道为什么这可能不适用于R?或者,即使有办法只使用gsub,我怎么说" not NONE"我的正则表达式在R?

trainData$Resolution = gsub("!NONE", RESOLVED, trainData$Resolution) <<在这里取消字符串的方法是什么?

2 个答案:

答案 0 :(得分:1)

根据您的解释,您似乎根本不需要正则表达式(即gsub())。您可以使用!=,因为您正在寻找精确字符串的所有不匹配项。也许你想要

within(trainData, {
    ## next line only necessary if you have a factor column
    Resolution <- as.character(Resolution)
    Resolution[Resolution != "NONE"] <- "RESOLVED"
})

答案 1 :(得分:0)

resolution_vector = grep("^(?!NONE$).*", trainData$Resolution, fixed=TRUE,perl=TRUE)

您需要使用选项perl=TRUE