2017-10-03 16 views
3

文字の間に空白を入れて、同じ文字列のさまざまなバージョンを返す関数を作成しようとしています。以下のような単語の間に空白を挿入

何か:

input <- "word" 

返す:

w ord 
wo rd 
wor d 

答えて

4

我々は最初のstrsplitを使用してすべての文字に文字列を破ります。 sapplyを使用して、すべての位置で空きスペースがappendになります。

input <- "word" 
input_break <- strsplit(input, "")[[1]] 

c(input, sapply(seq(1,nchar(input)-1), function(x) 
         paste0(append(input_break, " ", x), collapse = ""))) 

#[1] "word" "w ord" "wo rd" "wor d" 

?appendは私たちにxがベクトルであるappend(x, values, after = length(x)) を与え、valueが挿入される値である(ここでは" ")とafterあなたがvaluesを挿入したい場所の後です。ここで

+0

それを釘付けとを使用してのオプションです!ありがとう! – Igor

3

sub

sapply(seq_len(nchar(input)-1), function(i) sub(paste0('^(.{', i, '})'), '\\1 ', input)) 
#[1] "w ord" "wo rd" "wor d" 

それともsubstring

paste(substring(input, 1, 1:3), substring(input, 2:4, 4)) 
#[1] "w ord" "wo rd" "wor d" 
関連する問題