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


ワードやパワーポイントのdocxとpptxファイル作成に便利なパッケージの紹介です。紹介ではワードファイルのみに注目し紹介します。工夫次第では非常に有用なパッケージだと考えます。

パッケージバージョンは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") #段落の位置を指定する: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) #現在位置の段落に画像を追加: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) [/code]





・以下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_reachとbody_removeコマンドの組み合わせ例##### #TestDocx2の2段落目を削除 cursor_reach(x = TestDocx2, keyword = 99999) body_remove(x = TestDocx2) #保存 print(TestDocx2, target = "TEST2.docx") ######## ###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") ######## [/code]


出力例


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

スポンサードリンク

関連コンテンツ


スポンサードリンク