医療職からデータサイエンティストへ医療職からデータサイエンティストへ統計学、機械学習に関する記事をまとめています。覚えるRで縦持ち横持ち変換〜pivlot_loger、pivot_wider〜2021-03-20そろそろ覚えるRで縦持ち横持ち変換〜pivlot_loger、pivot_wider〜RRでテーブルを縦持ち、横持ちに変換したい時、以前は、spreadやgatherという関数がありました。(今もあるのですが、)上記2つに代わって新たに上位互換の関数として登場したのがpivot_longer、pivot_widerです。単純に縦持ち、横持ち変換するだけでなく、列同士の結合や、集計など行うこともできます。dplyrを使ったその他の前処理方法を知りたい方や、Pyhonで実行したいという方はこちらをご覧ください。www.medi-08-data-06.workwww.medi-08-data-06.workデータの作成まずはデータの作成を行います。作成するデータは、ある架空3店舗の顧客数を日ごとにカウントしたデータです。その日の天気も格納されています。このデータを使って、縦持ち、横持ち変換を行ってみましょう。long)データは3店舗が横並びになっています。これを縦持ちに変換してみましょう。69店舗と売り上げがそれぞれの縦持ちの形になりましたね!ただ、"id_"という文字が邪魔なので、消したいですね。そんな時はname_prefixを使うと接頭語を削除して、namesカラムに値が入ります。ここには、正規表現が使えるので、どんな接頭語でも対応できます。69引数の意味がわかりにくいですが、イメージとしては、このようになっています。wide)今度は、横持ちに変換してみましょう。先程の逆バージョンですね。namesが横持ちのカラムに、valuesがそのカラムの値となります。"sales")少し高度な使い方pivot_widerでは、エクセルのピボットテーブルのように集計を行うこともできます。ここでは、天気ごとの平均顧客数や合計顧客数を算出してみます。functionを入れることもできる。各天気ごとの合計や、平均が出ましたね!まとめspreadやgatherはまだ使えるようですが、より応用範囲の広いpivot_longer、pivot_widerに使い慣れていきたいですね。※本記事は筆者が個人的に学んだこと感じたことをまとめた記事になります。所属する組織の意見・見解とは無関係です。学んだこと、日々の所感をまとめていきます。※本ブログは筆者が個人的に学んだこと感じたことをまとめたブログになります。所属する組織の意見・見解とは無関係です。medi_data0826引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。