2017-01-13 1 views
1

마다 16 자 이후 :R : 텍스트 기능을 포장 : 를 삽입 N 자동으로 내가 문자열이

str1 <- "aaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaa aaa aaa" 
str1 
nchar(str1) 

내가 만들기 위해 \ n 자동으로 공백을 포함하여 모든 16 자, 후 삽입 할을 기본 그래픽 플롯에 사용할 랩 텍스트 함수.

내가 시도 :

str2 <- strwrap(str1, width = 16) 
str2 

하지만이 또한 제대로 단어를 분할하고 여분의 공백을 추가하는 방법이

plot(1:10,main=str2) 
mtext(str2, side=1, line=0, outer=F,cex=1,col="blue") 

작동하지 않은 경우 적절한 줄 바꿈 기능에 필요. 도움 주셔서 감사합니다.

+7

'GSUB를 ("({16}).", "\\ 1 \ n", str1이)'. – nicola

+1

관련 http://stackoverflow.com/questions/34710597/justify-text-in-r – rawr

답변

1

우리는 너무이 시도 할 수 있습니다 :

str2 <- paste(sapply(seq(1, nchar(str1), 16), function(i) paste0(substring(str1, i, min(i + 15, nchar(str1))), '\n')), collapse='') 
str2 
#[1] "aaaaaaaaaa aaaaa\naaaaaaaaa aaaaaa\naaaaaaaaaa aaaaa\naaaaaaaaaaaa aaa\naaaa aaa aaa\n" 

gregexpr('\n', str2) # position of inserted newlines 
#[[1]] 
#[1] 17 34 51 68 81 
+0

위대한 솔루션에 감사드립니다. 깨진 단어에 하이픈을 추가하는 방법이 있습니까? –

+1

gsub를 사용하여 위에 공백을 하이픈으로 바꾸십시오. –

+0

고마워요. –