Rの出力結果をExcelのセルにあわせて出力したい

R/Rstudio

Rの出力結果をExcelのセルにあわせて出力したい

Rの出力結果をまとめるときには、Excelであったり、Googleのスプレッドシートを使うことはよくあると思います。
例えば、以下のように、psychパッケージに含まれる、desciribeBy関数を用いて、条件ごとの記述統計量を出力して、その値をまとめたい、なんていう場合です。
(データは、Rに入っているサンプルデータの、みんな大好きirisデータです)

この出力された結果をExcelにコピペすると以下のように、各行の1つのセルに、すべての値が入れられてしまい、再利用がしづらいです。

この場合、出力結果をwrite.csv()に渡せるように整形して、ファイルを出力して使用するということも可能ではあると思いますが、その手順を踏むのは結構めんどくさいです。
どうやれば簡単に張り付けられるかなぁと思っていたのですが、案外簡単に解決できたので、忘れないようにメモします。

解決策:Excelの「区切り位置」を使う

Excelの「区切り位置」という機能を使えばすぐに解決できました。
この機能は、メモ帳のファイルなどを読み込むときに、どのようにExcelのセル上に配置するのかを決めることができる機能なのですが、Rの出力結果でもうまく使うことができました。

Excel2019の場合でしたら、「データ」リボンの中にあります

コピペした値が含まれている箇所(多くの場合、一列になっていると思います)を選択した状態で、「区切り位置」を選択します

選択すると、以下の図にある「区切り位置指定ウィザード」というのが表示されますので、
「スペースによって右または左にそろえられた固定長フィールドのデータ」というボタンにチェックをした状態で「次へ」を押します。
ちなみに、上の「コンマやタブなどの~」は、コンマ(,)やタブで区切られたファイルをセルにうまく配置する際に使います。

次に進むと、具体的にどの辺で区切るかを指定する画面になります。

大体の場合、自動的にいい感じに区切ってくれますが、変数名が長かったり、構造が複雑な出力結果であったりする場合は、本来1つのまとまりが分割されていたり、分割すべき場所が1つにまとまっていたりするので、若干調整してあげる必要があります。

分割する場合は、上端の数字の箇所をクリックすると、区切り線を追加することができます。
分割範囲を変える場合は、区切り線を動かしてあげることで変更できます。

最後に、区切った後の列のデータ形式を指定する画面が出てきます。
特に何もなければ、そのまま設定を変えずに、「完了」ボタンを押します。

完了ボタンを押すと、以下のように、うまくセルごとにデータが分割されて、使いやすくなります。
(貼り付けて気づきましたが、N列の標準誤差(se)が区切れてなかったです)

おわりに

この記事では、Rの出力結果をExcelのセルにあわせて使いやすくコピペする方法について紹介しました。
Rを使う際の目標として、再現性を保つため・人為的なミスをしないために、可能な限りスクリプトに残せない行動はしない、ということがあります。
そのため、理想的には、コピペをして作業を手で行うよりも、gtsummary()などを使って、R上で図表の作成までしたいところではありますが、実際のところ、ちょっとした作業や確認をするためには、このような細かいテクニックも役立つなぁと思う今日この頃です。

タイトルとURLをコピーしました