Rで解析:docxやpptxファイルを作成するのに便利「officer」パッケージ


ワードやパワーポイントのdocxとpptxファイル作成に便利なパッケージの紹介です。紹介ではワードファイルのみに注目し紹介します。

doxcの作成のみ試していますが、工夫次第では非常に有用なパッケージだと考えます。

パッケージバージョンは0.1.0。windows 10のR version 3.3.2で動作を確認しています。


パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("officer")

コマンドの紹介

詳細はコマンド、各パッケージのヘルプを確認してください。

#パッケージの読み込み
library("officer")

#ワードファイルの読み込みまたはひな形を作成:read_docxコマンド
#ファイル読み込み:pathオプション;指定が無ければひな形を作成
TestDocx <- read_docx()
#class確認
class(TestDocx)
[1] "docx"

#docx classに段落を追加:body_add_parコマンド
#現在の段落を基準に段落を追加する位置を指定:
#posオプション;on:上書き,before:前に追加,after:後に追加
body_add_par(x = TestDocx,
             value = "てすと、テスト, TEST, test on",
             style = "Normal",
             pos = "on")

#docx classを保存:printコマンド
#保存場所を指定:targetオプション
#ファイル名のみだと作業フォルダに保存
#保存にはtcltkパッケージを利用すると便利です
print(TestDocx, target = "TEST.docx")

###以降TestDocx2での操作例#####
###ワードファイル作成#####
TestDocx2 <- read_docx()
#段落を追加
body_add_par(x = TestDocx2,
             value = "段落1、てすと、テスト, TEST, test on",
             style = "Normal",
             pos = "on")
body_add_par(x = TestDocx2,
             value = paste(1, 3, 5, 99999, 8, collapse = " "),
             style = "Normal",
             pos = "after")
body_add_par(x = TestDocx2,
             value = paste(c(LETTERS[1:24], "AAA", letters[1:5]), collapse = " "),
             style = "Normal",
             pos = "after")
########

#段落の位置を指定する:cursor_XXXXコマンド
#docx classを指定:xオプション
#先頭:cursor_beginコマンド
cursor_begin(x)
#最後:cursor_endコマンド
cursor_end(x)
#キーワードで指定:cursor_reachコマンド
cursor_reach(x, keyword)
#現在位置の後ろ:cursor_backwardコマンド
cursor_backward(x)
#現在位置の前:cursor_forwardコマンド
cursor_forward(x)

#現在位置の段落を削除:body_removeコマンド
#docx classを指定:xオプション
body_remove(x)

###cursor_reachとbody_removeコマンドの組み合わせ例#####
#TestDocx2の2段落目を削除
cursor_reach(x = TestDocx2, keyword = 99999)
body_remove(x = TestDocx2)
#保存
print(TestDocx2, target = "TEST2.docx")
########

#現在位置の段落に画像を追加:body_add_imgコマンド
#画像ファイルパスを指定:srcオプション
body_add_img(x, src, width, height,
             style = "centered", pos = "after")

#現在位置の段落にテーブルを追加:body_add_tableコマンド
#データを指定:valueオプション
#テーブルフォーマットを指定:styleオプション;"Normal Table",
#"table_template","Light List Accent 2","Table Professional"が指定可能
body_add_table(x, value, style, pos = "after", first_row = TRUE,
               first_column = FALSE, last_row = FALSE, last_column = FALSE,
               no_hband = FALSE, no_vband = TRUE)

###body_add_imgとbody_add_tableコマンドの組み合わせ例#####
#データ例の作成
n <- 15
TestData <- data.frame("Group" = sample(paste0("Group", 1:5), n, replace = TRUE),
                       "x" = sample(c(1:100), n, replace = TRUE),
                       "y" = sample(c(1:200), n, replace = TRUE))

#tempフォルダに画像を作成
src <- tempfile(fileext = ".png")
png(filename = src, width = 5, height = 6, units = 'in', res = 300)
library("ggplot2")
ggplot(TestData, aes(x, y)) +
  geom_point()
dev.off()
#TestDocx2のTESTを含む段落を選択
cursor_reach(x = TestDocx2, keyword = "TEST")
#画像を差し込む
body_add_img(x = TestDocx2, src = src, width = 3, height = 3,
             style = "centered", pos = "after")
#テーブルを差し込む
body_add_table(x = TestDocx2, value = TestData,
               style = "Light List Accent 2", pos = "after", first_row = TRUE,
               first_column = FALSE, last_row = FALSE, last_column = FALSE,
               no_hband = FALSE, no_vband = TRUE)
#保存
print(TestDocx2, target = "TEST2.docx")
########

出力例


少しでも、あなたの解析が楽になりますように!!けものフレンズ、大変面白いです。ぺぱぷらいぶ、何か深い闇を感じました。満足。

スポンサードリンク

関連コンテンツ


スポンサードリンク