R×stringr::str_wrap 単語を段落に折り返して整然とした書式にする

R言語のstringrパッケージに含まれているstr_wrap()関数について解説します。この関数は、「長い文字列を文字数(幅)ごとに自動で改行(\n)を挟み、きれいに段落整形(折り返し)したい」ときに使える関数です。単に一定の文字数で折り返すのではなく、単語の区切り(スペースなど)を考慮してスマートに改行してくれるのが大きな特徴です。

stringrパッケージは、文字列データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。

概要

str_wrap()は、単語を段落に折り返して整然とした書式にするための関数です。Knuth-Plassアルゴリズムを用いて、行の「ギザギザ感」(つまり、行の長さのばらつき)を最小限に抑えながら、単語を段落に折り返します。

使い方


str_wrap(string, width = 80, indent = 0, exdent = 0, whitespace_only = TRUE)

引数

string

文字ベクトルまたは文字ベクトルに変換可能なものを指定します。

width = 80

対象となる行の幅(文字数)を示す正の整数を指定します。
幅が1以下の場合、各単語は1行に分割されます。

indent = 0

最初の行(indent)のインデントを示す非負の整数を指定します。

exdent = 0

最初の行以降の行(exdent)のインデントを示す非負の整数を指定します。

whitespace_only = TRUE

真偽値を指定します。

  • TRUE(デフォルト)の場合、空白部分でのみ折り返されます。
  • FALSE の場合、単語に含まれない文字(例: /、-)で改行できます。

戻り値

文字列と同じ長さの文字ベクトルを返します。

使用例

準備

あらかじめ、tidyverseパッケージまたはstringrパッケージを読み込んでおきます。


# library(tidyverse)でもよい
library(stringr)

文字列を折り返す

文字列「ゆきやこんこ あられやこんこ ふってはふっては ずんずんつもる」を10文字ずつ段落にするには次のようにします。


str_wrap("ゆきやこんこ あられやこんこ ふってはふっては ずんずんつもる", 10)

[1] "ゆきやこんこ\nあられやこんこ\nふってはふっては\nずんずんつもる"

参考文献