【R】data.frameを列名(カラム名)で並べ替えする方法2021年6月25日dplyrパッケージは便利ですよね。私もこのパッケージがあるからRを使っているといっても過言ではありません。今回はそんな便利なdplyrパッケージですが、データフレームを列名でソートする方法を紹介します。データ自体をソート、並べ替えをするのはarrange関数があるから簡単ですが、列の並び替えをする方法って意外と盲点ではないですか?今回はそんなお悩みに答えます。この記事でわかること。dplyrパッケージを使って列名の昇順、降順でカラムを並び替えることができる。まとめ結論(実際のコードの紹介)今回は非常に簡単なので手短に、コードの紹介をしてちょっとだけ解説をしていきます。Rにデフォルトで格納されているmpgのデータを使った例になります。2008列名で昇順ソートがされました。Tを指定すると、Name_listが降順に並び変わり残りの手順は昇順と一緒です。下のコードでは、mpgのカラム名のベクトルを取得してソートし、Name_listに格納します。sort()データの中身はこんな感じです。"year"続いて、下のコードで上でソートした名前のリストの順番に従ってカラムをセレクトします。select(all_of(Name_list))select(all_of(××))と記載すると(××はベクトル形式のデータです)××の名前と一致するカラムをselectする動作が行われます。注意しなければならないのは、all_of(××)と記載すると××の中にあるものすべてがデータフレームの中に存在しないとエラーになります。mpgに存在しないカラム名を指定したName_list2をall_ofに指定するとエラーになります。ist.こんな時はone_ofもしくはany_ofを使いましょう。並べ替えとは関係ないですが・・。one_of、any_ofは指定した文字列のうち一致する列を選択してくれます。実際の出力を確認するとわかりますが、one_ofの場合、「hoge.hageというカラムはありませんよ」という警告を表示してくれます。`hage`というわけで、個人的にはall_ofとone_ofを使うことは多いけど、any_ofはほとんど使いませんね。そもそも、選択したい列の名前ベクトルをきちんと使ってからselect関数に投げたいのでほぼall_ofしか使わないです。まとめdata.frameを列名(カラム名)でソートしたい場合はメモ並べ替えたいdata.frameのカラム名のベクトルを取得カラム名のベクトルを並び替える並び替えたベクトルを使ってselect関数でカラムを選択するといった3つの手順で実現することができました。補足として、all_of、one_of、any_ofの使い方は、以下の通りです。メモall_of:名前のベクトルはデータフレームにすべて存在する必要があるone_of/any_of:名前ベクトルに一致した列だけ取得する。存在しない列名がある場合はone_ofは警告を表示する。【R】大量・複雑なクロス集計を効率的に行う方法この記事でわかること。Rで複雑、大量のクロス集計を効率的に行う方法の仕組みがわかります。【R】dplyrを使って複数の列の合計したカラムを追加する方法この記事でわかること。データフレームの複数の列の合計したカラムを追加する方法を解説します。エクセルなどスプレッドシートで表現すると↓のようなことをするイメージです。※私ものその一人ですw。このパッケージがなかったらRを使っていないかも・・・。【R】大量・複雑なクロス集計を効率的に行う方法【実践篇】この記事でわかること。Rで複雑、大量のクロス集計を効率的に行う具体的なコードの書き方がわかります。実際にサンプルデータを使いながら説明するので、実践的な集計方法が身につきます。