2015-11-11 5 views
2

В зависимости от того, находится ли критерий разделения (' ') в начале или конце строки, он отображается как элемент в выходном списке.strsplit() ведет себя по-разному с пространством в начале и в конце строки

#strsplit("This is a string ") 

strsplit("This is a string ", ' ') 
#[[1]] 
#[1] "This" "is"  "a"  "string" 

#strsplit(" And this is a string", ' ') 
strsplit(" And this is a string", ' ') 
#[[1]] 
#[1] ""  "And" "this" "is"  "a"  "string" 

Есть ли способ изменить этот код, чтобы пространство отображалось как элемент для обоих списков?

Предназначенный выход:

#strsplit("This is a string ") 

strsplit("This is a string ", ' ') 
#[[1]] 
#[1] "This" "is"  "a"  "string" "" 

#strsplit(" And this is a string", ' ') 
strsplit(" And this is a string", ' ') 
#[[1]] 
#[1] ""  "And" "this" "is"  "a"  "string" 
+0

Обратите внимание, что это документально поведение в 'strsplit' в разделе "детали"?. – A5C1D2H2I1M1N2O1R2T1

ответ

4

Использование stringi::stri_split

require(stringi) 
stri_split_fixed("This is a string ", ' ') 
#[[1]] 
#[1] "This" "is"  "a"  "string" ""  

stri_split_fixed(" And this is a string", ' ') 
#[[1]] 
#[1] ""  "And" "this" "is"  "a"  
#[6] "string" 
+0

Или 'библиотека (руда); ore.split ("", "это строка") '. – A5C1D2H2I1M1N2O1R2T1

 Смежные вопросы

  • Нет связанных вопросов^_^