我有将近 100,000 行已转换为数据框的抓取数据。一列是一串文本字符,但运行异常。在下面的示例中,有文本,其中包含要删除的括号信息,并且我还想删除“(c)”。然而,前面的空格在技术上不是空格(它被认为是空格吗?)。
我不确定如何在此处重现该示例,因为当我复制/粘贴记录时,它被视为正常且有效,但在抓取的数据中,它没有。肠道检查是计算空格,它给了我 4,这意味着 ( 前面的空格不是真正的空格。我不知道如何删除它!
我通常会运行的代码如下。同样,以这种方式工作,但不适用于我的抓取数据。
test<-c("Barry Windham (c) & Mike Rotundo (c)")
test<-gsub("[ ][(]c[)]","",test)
最佳答案
您可以考虑使用:
test<-c("Barry Windham (c) & Mike Rotundo (c)")
gsub("(*UCP)\\s+\\(c\\)", "", test, perl=TRUE)
# => [1] "Barry Windham & Mike Rotundo"
见 an online R demo详情
(*UCP)
- 使 PCRE 正则表达式中的所有速记字符类(它是 PCRE 由于 perl=TRUE
)Unicode 感知 \\s+
- 任何一个或多个 Unicode 空格 \\(c\\)
- (c)
子串。 如果您需要保留
(c)
,捕获它并在替换中使用反向引用:gsub("(*UCP)\\s+(\\(c\\))", "\\1", test, perl=TRUE)
关于在 R 中删除括号 "("之前的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64622257/