R言語で、単語を段落に折り返して整然とした書式にする方法について解説します。文字列の操作には、tidyverseパッケージに含まれているstringrパッケージを使用するのが便利です。ここでは、stringrパッケージのstr_wrap()を使用した方法についてお伝えします。
str_wrap()の概要
str_wrap()は、単語を段落に折り返して整然とした書式にするための関数です。Knuth-Plassアルゴリズムを用いて、行の「ギザギザ感」(つまり、行の長さのばらつき)を最小限に抑えながら、単語を段落に折り返します。
str_wrap()の使い方
str_wrap(string, width = 80, indent = 0, exdent = 0, whitespace_only = TRUE)
str_wrap()の引数
string
文字ベクトルまたは文字ベクトルに変換可能なものを指定します。
width = 80
対象となる行の幅(文字数)を示す正の整数を指定します。
幅が1以下の場合、各単語は1行に分割されます。
indent = 0
最初の行(indent)のインデントを示す非負の整数を指定します。
exdent = 0
最初の行以降の行(exdent)のインデントを示す非負の整数を指定します。
whitespace_only = TRUE
真偽値を指定します。
- TRUE(デフォルト)の場合、空白部分でのみ折り返されます。
- FALSE の場合、単語に含まれない文字(例: /、-)で改行できます。
str_wrap()の戻り値
文字列と同じ長さの文字ベクトルを返します。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
使用例
文字列「ゆきやこんこ あられやこんこ ふってはふっては ずんずんつもる」を10文字ずつ段落にするには次のようにします。
str_wrap("ゆきやこんこ あられやこんこ ふってはふっては ずんずんつもる", 10)
[1] "ゆきやこんこ\nあられやこんこ\nふってはふっては\nずんずんつもる"