首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅在第二个空格之后分隔字符串中的值

如何仅在第二个空格之后分隔字符串中的值
EN

Stack Overflow用户
提问于 2022-02-28 12:52:39
回答 3查看 42关注 0票数 1

我有一串名字,例如:

代码语言:javascript
复制
st <- 'IKE IROEGBU NIMROD LEVI KYLE GIBSON CHAVAUGHN LEWIS BRYCE WASHINGSON'

我希望输出是像这样的向量:

代码语言:javascript
复制
c('IKE IROEGBU', 'NIMROD LEVI', 'KYLE GIBSON', 'CHAVAUGHN LEWIS', 'BRYCE WASHINGSON')

我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-02-28 12:59:17

你可以:

代码语言:javascript
复制
st <- 'IKE IROEGBU NIMROD LEVI KYLE GIBSON CHAVAUGHN LEWIS BRYCE WASHINGSON'

c(stringr::str_match_all(st, "\\S+\\s\\S+")[[1]])
#> [1] "IKE IROEGBU"      "NIMROD LEVI"      "KYLE GIBSON"      "CHAVAUGHN LEWIS" 
#> [5] "BRYCE WASHINGSON"
票数 2
EN

Stack Overflow用户

发布于 2022-02-28 13:27:26

另一种不友好的方式:

代码语言:javascript
复制
sst <- strsplit(st, " ")[[1]]
paste(sst[c(TRUE, FALSE)], sst[c(FALSE, TRUE)])

# [1] "IKE IROEGBU"      "NIMROD LEVI"      "KYLE GIBSON"      "CHAVAUGHN LEWIS"  "BRYCE WASHINGSON"
票数 2
EN

Stack Overflow用户

发布于 2022-02-28 13:30:28

另一种方式是:

代码语言:javascript
复制
unlist(strsplit(st, " ")) -> names

i = 0
while (i < length(names) / 2) {
  
  print(
    paste0(names[1:2 + i * 2], collapse = " ")
  )
  
  i = i + 1
}

# [1] "IKE IROEGBU"
# [1] "NIMROD LEVI"
# [1] "KYLE GIBSON"
# [1] "CHAVAUGHN LEWIS"
# [1] "BRYCE WASHINGSON"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71295325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档