clipr, datapasta: データ入力を支えるパッケージ

ネット上のデータをコピペでRに読み込ませたい時がある。そんな時に役立つ2つのパッケージを紹介する。

Shinya Uryu

3 minute read

ネット上のデータをコピペでRに読み込ませたい時がある。いや、本当にわずかなデータなので手入力したり{rvest}なりでスクレイピングすれば良いのだけど、もっと手軽に済ませたい。そんな時に役立つ2つのパッケージを紹介する。

{clipr}CRANに登録されているが、{datapasta}の方はGitHubから開発版をインストールする。

install.packages("clipr")
devtools::install_github("MilesMcBain/datapasta")

clipr

{clipr}パッケージは現在コピーしているものの読み書きを実行する。OSごとに出力の違いが考慮されていたり、出力形式をオプションで変更できる。現在コピーしているテキストをRに出力させるread_clip()とRオブジェクトをコピーするwrite_clip()が主な関数となる。

library(clipr)
# 現在コピーされている文字列を返す
read_clip()
# [1] "cb <- read_clip()"

# write_clip を実行し、ペーストするとwrite_clipの内容が出力される
write_clip(c("この文字列はcliprから", "読み込まれた"))
# この文字列はcliprから
# 読み込まれた

区切り文字を指定すればベクトルの要素として扱える。

# breaks引数やobject.type引数を使ってコピーする内容を変更可能
write_clip(c("この文字列はcliprから", "読み込まれた"), breaks = ", ")
# この文字列はcliprから, 読み込まれた

また https://ja.wikipedia.org/wiki/県 の「現在の県と県に訳される行政区画」として記録されている表データをコピーしたあとでread_clip_tbl()を実行するとデータフレームが出力される。

datapasta

{datapasta}は先述の{clipr}に依存している。機能としては、エクセルの選択箇所をc()からなるベクトルで返してくれたり、適当にコピーした表をtibble形式に整形してくれたりする。

library(datapasta)

例えばウェブ上に次のような文字の羅列があるとする。

ホクソエム, ホクソモナギ, ホクそうむ

これをコピーしてvector_paste()を実行すると

c("ホクソエム"," ホクソモナギ"," ホクそうむ")

が出力される。また、 https://ja.wikipedia.org/wiki/県 のページにあるような表データをデータフレームとしてRで扱いたい場合には該当部分をコピーしてtribble_paste()を実行するとtibble()にデータが与えられた状態となる。

素晴らしい。

RStudioを利用していれば、アドインとして{datapaste}の関数をショートカットで実行できるのでさらに捗る。

comments powered by Disqus