Help us understand the problem. What is going on with this article?

【R】 データ編集に超便利な {editData} を紹介する

概要

データフレームを効率よく処理するときの定番といえばーー?

せーの!


『『{dplyr}!!!』』



正解!素晴らしい!10ポインツ!

ですが欠損値を埋めたり、一行だけ消したり・・・といった風に、何らかしらの理由でデータの中身を直接修正したいときもありますよね。
データを画一的に処理するときは{dplyr}は大変重宝しますが、個々のデータ修正自体には少々使いづらいです。

そこでRStudio上でのデータ編集に役立つ、あまり認知されていないものの超絶使いやすい{editData}というRStudio用の拡張機能(アドイン)を紹介します。

導入

CRAN版と開発版の2つがあります。お好きなほうをどうぞ。
個人的には開発版がおすすめです。
この記事では開発版を使っています。CRAN版と若干仕様が違うので注意してください。

# CRAN版
install.packages("editData")

# 開発版
# {devtools}パッケージが必要です。
devtools::install_github("cardiomoon/editData")

導入完了後に、一旦RStudioを再起動してください。

操作

予め編集したいデータセットを用意しておいてください。

df1 <- iris

1. エディタの起動

関数で呼び出す方法と、アドインから開く方法があります。
どちらでもOKです。

関数による呼び出し

df2 <- editData::editData(df1)

追記:プラグインの不具合なのか、コールバックが上手くいかないようなので、編集したデータフレームを代入する形で呼び出してください。同じデータフレームに代入するようにすると上書きになります。

上書きしたい場合
df1 <- editData::editData(df1)

アドインからの起動

ここです。

1.png

エディタが起動したらOr Enter data name欄に編集したいデータフレーム名を入力しましょう。

2.PNG

追記:コールバックエラーが発生しているので、先に紹介した方法(関数で起動)でないと変更が反映されないようです。そのため、CSV出力を想定している時以外はこの方法は使えないと思われます。

3. データの検索 (AND検索)

編集したいデータを探すためには、Search欄を使った検索が便利です。
例えば、以下のような条件のデータを探しているとします。

  • Sepal.Width = 3.2、
  • Petal.Length = 1.4
  • Species = setosa

その場合は、こんな感じで入力すれば絞り込めます。列名と紐づけたような検索やOR検索は恐らくできないですが、欲しいデータの中身が幾つか分かっていれば十分だと思います。

3.PNG

4. データの中身を編集

先ほど絞り込んだデータを編集しましょう。
今回は、Sepal.Lengthを『4.6 ⇒ 5.0』に変更してみましょう。
編集したい数値をダブルクリックして書き換えるだけです。

4.png

再び同じ条件で検索して、データが変更されていることを確認しましょう。

5.PNG

3. データの追加

Add Newをクリックして、適当にデータを入力してみましょう。
Update⇒Closeでウィンドウを閉じると変更が適用されます。
6.PNG

データが最後尾に追加されたのが確認できます。

7.PNG

なお任意の場所にデータを追加したい場合、追加したい場所の下の行を選択してInsert Rowをクリックします。

5. 行の削除

要らない行を選択してDelete Rowを押せば消えます。

6. 変更の適用

必要な編集が完了したらDoneを押します。これでR上に変更が反映されます。

7. データの全削除

Resetを押すことでデータの中身をすべて削除できます。
列名は生き残っているので、一旦更地にしてからデータを手動で追加していく場合に使用できます。
普通はあまり使わないと思います。

8. データの復旧

Restore

Restoreを押すことで、直前の操作(追加・削除)に限り、戻すことができます。
2回以上前の操作は戻せないほか、行の増減を伴わない作業(データ自体の編集)も、この方法では戻せないようです。
これらの操作を戻したい場合は、次項の初期化で行うことができます。

Cancel(初期化)

追加・削除・編集したデータを編集前に戻すには、左上のCancelを押します。
Rにエディタ上の変更が反映されないので、Restoreで戻せないものも初期化することで復旧可能です。

FAQ

Q. Addin欄にeditDataが表示されない
A. RStudioを再起動すれば多分でてきます。

Q. エディタは起動するけどデータが正常に表示されない
A. オブジェクト名(データフレーム名)が3文字以上でないとダメなようです。名前を変えてみてください。

# この場合はダメ
df <- iris
editData::editData(df)

# この場合はOK
df1 <- iris
editData::editData(df1)

Q. 何ができないか?
A. 例えば、以下のことができないと思います。必要であればR上で個別に操作してください。

  • 列の追加
  • 列名の編集
  • 行・列の並び替え
  • 縦持ち・横持ちの置換

Q. 日本語に対応しているか?
A. 対応しています。標準のedit()では日本語が文字化けすることがありますが、editDataでは問題なく扱えます。

Q. N/Aを検索したい
A. 検索欄ではN/Aを直接検索することはできなそうですが、カラムをクリックして昇順・降順いずれかでソートすると最後尾にN/Aのデータが集まりますので、このソート機能を活用するとよいでしょう。

おわりに

多少使い勝手の悪い部分もありますが、データをRStudio上で直接編集できるのは超ありがたいです。

皆様のデータ分析に役立ちますように。

Enjoy!

おしまい。

参考文献

package editData : An RStudio Addin for Editing A ‘data.frame’

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした