2015-04-21 2 views
2

Например, у меня есть строкаРазделить строку на две части после первого слова?

x <- 'what are you talking about' 

Как разбить его на две строки 'what' и 'are you talking about'?

+1

что-то ненормальное, как 'strsplit (суб (»», '$', x), '[$]') [[1]] ' – rawr

+1

Релевантно к этому обсуждению: [разделение на первое/n-е вхождение разделителя] (http://stackoverflow.com/questions/26301424/split- на первом-го вхождения-о f-разделитель) – thelatemail

ответ

1

Выполняйте сопоставление вместо разделения.

> x <- 'what are you talking about' 
> library(stringi) 
> stri_extract_all(x, regex="^\\S+|\\S.*")[[1]] 
[1] "what"       
[2] "are you talking about" 

ИЛИ

> library(stringr) 
> str_split(x, perl("^\\S+\\K\\s+")) 
[[1]] 
[1] "what"       
[2] "are you talking about" 
+0

Nice. Что изменилось бы в коде, чтобы разделить строку после второго слова? – lawyeR

+1

@lawyeR такой простой 'str_split (x, perl ("^\\ S + \\ s + \\ S + \\ K \\ s + "))' –

1

Вы можете сделать это длинная рука, так как strsplit не будет играть хорошо здесь:

val <- regexpr("\\s",x) 
substring(x, c(1,val+1), c(val-1,nchar(x))) 
#[1] "what"       "are you talking about" 
Смежные вопросы