【问题标题】:Split string by final space in R在R中按最后一个空格分割字符串
【发布时间】:2013-11-13 16:52:28
【问题描述】:

我有一个向量,其中包含多个空格的字符串。我想将其拆分为两个向量,由最后一个空格拆分。例如:

vec <- c('This is one', 'And another', 'And one more again')

应该变成

vec1 = c('This is', 'And', 'And one more again')
vec2 = c('one', 'another', 'again')

有没有快速简便的方法来做到这一点?我在使用 gsub 和 regex 之前做过类似的事情,并设法使用以下方法获得第二个向量

vec2 <- gsub(".* ", "", vec)

但不知道如何获取 vec1。

提前致谢

【问题讨论】:

  • vec1 &lt;- gsub(" [^ ]*$", "", vec)?
  • 这对于带有其他空格(制表符、换行符)或只有一个单词的字符串来说很脆弱。
  • 感谢弗兰基,但这仅显示第一个空格之前的字符(在本例中为“This”、“And”和“And”),而不是第二个空格之前的所有字符
  • 我更新了正则表达式,试试那个。
  • 就这样谢谢你!

标签: regex string r split gsub


【解决方案1】:

这是使用前瞻断言的一种方法:

do.call(rbind, strsplit(vec, ' (?=[^ ]+$)', perl=TRUE))
#      [,1]           [,2]     
# [1,] "This is"      "one"    
# [2,] "And"          "another"
# [3,] "And one more" "again" 

【讨论】:

  • 谢谢 Matthew,这和 Frankies 在我的问题下的评论一样有效
猜你喜欢
  • 1970-01-01
  • 2013-10-11
  • 2014-08-15
  • 2020-05-16
  • 2017-11-10
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
相关资源
最近更新 更多