R言語で、リストまたはデータフレームの値を用いて、文字列を埋め込む方法について解説します。文字列の操作には、tidyverseパッケージに含まれているstringrパッケージを使用するのが便利です。ここでは、stringrパッケージのstr_glue_data()を使用した方法についてお伝えします。

str_glue()は、Pythonでいうところのformat()やf文字列のことです。

str_glue_data()の概要

str_glue_data()は、リストまたはデータフレームの値を用いて、文字列を埋め込むための関数です。

str_glue_data()の使い方


str_glue_data(.x, ..., .sep = "", .envir = parent.frame(), .na = "NA")

str_glue()の引数

.x

値を検索するために使用される環境、リスト、またはデータ フレームを指定します。

sep = “”

要素を区切るために使用されるセパレーターの文字列を指定します。

.envir = parent.frame()

各式を評価する環境を指定します。
式は左から右に評価されます。.xが環境の場合、式はその環境で評価され、.envirは無視されます。NULLが渡された場合は、emptyenv()と同等になります。

.na = “NA”

NA値を置き換える値を指定します。
NULL欠損値が伝播された場合、つまりNA結果の場合はNA出力が発生します。それ以外の場合は、値は.naの値に置き換えられます。

str_glue_data()の戻り値

最長入力と同じ長さの文字ベクトル。

準備

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


library(tidyverse)

str_glue_data()の使用例

リストまたはデータフレームの値を用いて、文字列埋め込みには次のようにします。


mtcars %>%
  str_glue_data("{rownames(.)} : mpg = {mpg}")

Mazda RX4 : mpg = 21
Mazda RX4 Wag : mpg = 21
Datsun 710 : mpg = 22.8
Hornet 4 Drive : mpg = 21.4
Hornet Sportabout : mpg = 18.7
Valiant : mpg = 18.1
Duster 360 : mpg = 14.3
Merc 240D : mpg = 24.4
Merc 230 : mpg = 22.8
Merc 280 : mpg = 19.2
Merc 280C : mpg = 17.8
Merc 450SE : mpg = 16.4
Merc 450SL : mpg = 17.3
Merc 450SLC : mpg = 15.2
Cadillac Fleetwood : mpg = 10.4
Lincoln Continental : mpg = 10.4
Chrysler Imperial : mpg = 14.7
Fiat 128 : mpg = 32.4
Honda Civic : mpg = 30.4
Toyota Corolla : mpg = 33.9
Toyota Corona : mpg = 21.5
Dodge Challenger : mpg = 15.5
AMC Javelin : mpg = 15.2
Camaro Z28 : mpg = 13.3
Pontiac Firebird : mpg = 19.2
Fiat X1-9 : mpg = 27.3
Porsche 914-2 : mpg = 26
Lotus Europa : mpg = 30.4
Ford Pantera L : mpg = 15.8
Ferrari Dino : mpg = 19.7
Maserati Bora : mpg = 15
Volvo 142E : mpg = 21.4
R×stringr::str_glue_data リストまたはデータフレームの値を用いた文字列の埋め込み