r - 向量中的 substring() 和 ()

标签 r substring

我想将此列分成 2 个,使用第一个括号作为分隔符。我使用了 word(x,2, sep = "(") 但我得到了一个错误。我知道 R 不喜欢括号作为 sep 。我想使用 "(" 作为 sep 因为数据是没有一致记录,在某些行上,我们在国家和州之间有一个空格,在其他一些行上我们没有。
我该如何解决这个问题?谢谢你。

x <- c("United States (Alabama) ", "United States (California) ", 
"United States (California) ", "United States (California) ", 
"United States (California) ", "United States (Colorado) ", 
"United States (Colorado) ", "United States (Colorado) ", 
"United States(Connecticut) ", "United States(Connecticut) "
)
word(x,2,sep = "("). 

Error in stri_locate_all_regex(string, pattern, omit_no_match = TRUE, : Incorrectly nested parentheses in regexp pattern. (U_REGEX_MISMATCHED_PAREN, context=()

最佳答案

我想你可以试试 strsplit + gsub像下面

trimws(
  gsub(
    "\\(|\\)",
    "",
    do.call(
      rbind,
      strsplit(x,
        "((?<=\\s)\\()|(?=)\\(",
        perl = TRUE
      )
    )
  )
)
这使
      [,1]            [,2]
 [1,] "United States" "Alabama"
 [2,] "United States" "California"
 [3,] "United States" "California"
 [4,] "United States" "California" 
 [5,] "United States" "California"
 [6,] "United States" "Colorado"
 [7,] "United States" "Colorado"
 [8,] "United States" "Colorado"
 [9,] "United States" "Connecticut"
[10,] "United States" "Connecticut"

关于r - 向量中的 substring() 和 (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64286287/

相关文章:

Python:比较两个字符串保留一端的差异

java - 尽管我得到了结果,为什么我会收到此错误?

C++如何将子字符串转换为int

R sqldf 无法识别 posixct

r - r 中重新编码的问题

r - 使用调查权重时,如何为 logit 模型生成边际效应?

从字符串末尾删除句点

r - 使用 R 列出具有指定扩展名的所有文件

java - 烦人的小问题——非法开始表达

Java - 如何根据一定的长度分割字符串?