如何在R中拆分

问题描述 投票:0回答:1

我有一项多中心研究,其位置已导入。例如“Netra Jyothi 慈善信托基金,C/o Prasad Netralaya 超级专业眼科医院,卡纳塔克Yenepoya 医学院医院,卡纳塔克”。我想将“KARNATAKAYenepoya”拆分为“KARNATAKA”和“Yenepoya”。我无法以这样的方式创建代码,它会自动检测是否有任何大写的州名称,例如“KARNATAKA”,然后进行分割。

我尝试过使用代码:

text <- "KARNATAKAYenepoya"
state_name <- str_extract(text, "[A-Z]+")
print(state_name)

但我得到的值是“KARNATAKAY”而不是“KARNATAKA”。

r string detection
1个回答
0
投票

在您和一些类似的情况下尝试这个:

library(tidyverse)
text = c(
    "Netra Jyothi Charitable Trust, C/o Prasad Netralaya Super specialty Eye Hospital,KARNATAKAYenepoya Medical College Hospital,KARNATAKA", 
    "KARNATAKAYenepoya"
    )

tibble(text) %>% 
    mutate(text1 = str_extract_all(text, "[A-Z]{3,}")[[1]][1], 
           text1 = substr(text1, 1, nchar(text1)-1), 
           pos = str_locate(text, text1)[,2],
           text2 = substr(text, pos+1, nchar(text)),
           text2 = str_extract(text2, "^[^\\s]+")
           ) %>% 
    select(text1, text2, text)

哪个输出将是:

# A tibble: 2 × 3
  text1     text2    text                                 
  <chr>     <chr>    <chr>                                
1 KARNATAKA Yenepoya Netra Jyothi Charitable Trust, C/o P…
2 KARNATAKA Yenepoya KARNATAKAYenepoya   
© www.soinside.com 2019 - 2024. All rights reserved.