我有一项多中心研究,其位置已导入。例如“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”。
在您和一些类似的情况下尝试这个:
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