在 R 中删除括号“(”之前的空格
Remove whitespace before bracket " (" in R
我有将近 100,000 行的抓取数据已转换为数据框。一列是一串文本字符,但运行异常。在下面的示例中,有一段文本,其中包含我要删除的括号信息,我还想删除“(c)”。但是前面的space在技术上不是space(它被认为是白色space吗?)。
我不确定如何在此处重现该示例,因为当我 copy/paste 一条记录时,它被视为正常并且可以正常工作,但在抓取的数据中却没有。直觉检查是计算 spaces,它给了我 4,这意味着 ( 前面的 space 不是真正的 space。我不知道如何删除它!
我通常运行的代码如下。同样,以这种方式工作,但在我抓取的数据中不起作用。
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"
详情
(*UCP)
- 使 PCRE 正则表达式中的所有 shorthand 字符 类(由于 perl=TRUE
是 PCRE)Unicode 识别
\s+
- 任何一个或多个 Unicode 空格
\(c\)
- (c)
子字符串。
如果您需要保留 (c)
,捕获它并在替换中使用反向引用:
gsub("(*UCP)\s+(\(c\))", "\1", test, perl=TRUE)
我有将近 100,000 行的抓取数据已转换为数据框。一列是一串文本字符,但运行异常。在下面的示例中,有一段文本,其中包含我要删除的括号信息,我还想删除“(c)”。但是前面的space在技术上不是space(它被认为是白色space吗?)。
我不确定如何在此处重现该示例,因为当我 copy/paste 一条记录时,它被视为正常并且可以正常工作,但在抓取的数据中却没有。直觉检查是计算 spaces,它给了我 4,这意味着 ( 前面的 space 不是真正的 space。我不知道如何删除它!
我通常运行的代码如下。同样,以这种方式工作,但在我抓取的数据中不起作用。
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"
详情
(*UCP)
- 使 PCRE 正则表达式中的所有 shorthand 字符 类(由于perl=TRUE
是 PCRE)Unicode 识别\s+
- 任何一个或多个 Unicode 空格\(c\)
-(c)
子字符串。
如果您需要保留 (c)
,捕获它并在替换中使用反向引用:
gsub("(*UCP)\s+(\(c\))", "\1", test, perl=TRUE)