我有一个数据集,其中包含国会议员姓名以及其州和区号。理想情况下,我想将字符串分成包含代表名称,州和区号的新列。我可以成功拆分一个,但是由于字符串长度不同,因此不会与其他字符串匹配。以下是可复制的示例。
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"))
希望大家都能帮助我。谢谢!
答案 0 :(得分:1)
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