簡體   English   中英

分割不同長度的字符串

[英]Splitting strings with different lengths

我有一個數據集,其中包含國會議員姓名,后跟他們的 state 和區號。 理想情況下,我想將字符串拆分為包含代表名稱、state 和區號的新列。 我可以成功拆分一個,但由於字符串的長度不同,它不會匹配其他字符串。 下面是一個可重現的樣本。

current_data <- tibble(
 names = c("Ralph Abraham La. 5", "Robert B. Aderholt Ala. 4", "Rick W. Allen Ga. 12", "Mark Amodei Nev. 2",
           "Kelly Armstrong N.D. 0", "Jodey Arrington Tex. 19"),
 party = c("R", "R", "R","R", "R", "R"),
 vote = c("N","N","N","N","N","N"))

這是我希望它看起來像的示例。

desired_data <- tibble(
 names = c("Ralph Abraham", "Robert B. Aderholt", "Rick W. Allen", "Mark Amodei",
        "Kelly Armstrong", "Jodey Arrington"),
 state = c("La.", "Ala.", "Ga.", "Nev.", "N.D.", "Tex."),
 district_num = c(5,4,12,2,0,19),
 party = c("R", "R", "R","R", "R", "R"),
 vote = c("N","N","N","N","N","N"))

希望大家能幫幫我。 謝謝!

current_data%>%
   separate(names,c("names","state","district"),"\\s(?=\\S+\\s+\\d)|\\s+(?=\\d)")

# A tibble: 6 x 5
  names              state district party vote 
  <chr>              <chr> <chr>    <chr> <chr>
1 Ralph Abraham      La.   5        R     N    
2 Robert B. Aderholt Ala.  4        R     N    
3 Rick W. Allen      Ga.   12       R     N    
4 Mark Amodei        Nev.  2        R     N    
5 Kelly Armstrong    N.D.  0        R     N    
6 Jodey Arrington    Tex.  19       R     N    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM