文字列を指定した位置で改行する方法です。
始めに例として 文字列「01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20」 を “10” の直後、先頭から30文字目(3 × 10)で改行します。
改めて文字列を作成します。
library(dplyr)
<- seq(20) %>% formatC(width = 2, flag = "0") %>% paste0(collapse = " ")) (string
[1] "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20"
関数 stri_sub {stringi} を利用します。
library(stringi)
packageVersion("stringi")
[1] '1.7.12'
引数 from に改行したい場所(先頭からの文字数)、to にその1つ前を指定します。
stri_sub(str = string, from = 30, to = 29) <- "\n"
string
[1] "01 02 03 04 05 06 07 08 09 10\n 11 12 13 14 15 16 17 18 19 20"
10 の後ろ、先頭から30文字目に 改行記号 \n が挿入されています。
例えば以下のように、グラフタイトルの改行に利用できます。
始めに改行させない場合。
改行させたい文字列( plottitle )は以下の通りとします。
<- "x軸に一様分布から、y軸に正規分布からランダムに発生させた20組のサンプルデータ" plottitle
<- 20
n <- runif(n = n, min = -5, max = 5)
x <- rnorm(n = n)
y library(ggplot2)
<- ggplot(mapping = aes(x = x, y = y, col = (x > 0 & y > 0))) +
g geom_point() +
geom_hline(yintercept = 0) +
geom_vline(xintercept = 0)
+ labs(title = plottitle) g
続いて改行させる場合。
stri_sub(str = plottitle, from = 25, to = 24) <- "\n"
+ labs(title = plottitle) g
タイトルが改行されています。
以上です。