・お題:スプレッドシートで作った表をRにデータフレームとして読み込んだら、列名が変で扱いづらい。うまいこと修正したい。
・janitorというパッケージを使う。正しいことは以下を参照いただきたい。インストールは割愛。
https://cran.r-project.org/web/packages/janitor/vignettes/janitor.html
・読み込む。
> library(tidyverse)#Rを使いやすくする
> library(janitor)
・適当にスプレッドシートでデータを作成して、コピーしてクリップボードから読み込む。スプレッドシートで作成した表は以下。
・クリップボードにコピーして読み込んだ。
> df <- read.table("clipboard",
+ sep = "\t",
+ header = TRUE,
+ row.names = 1)
> df
以下略
・スペースが自動でドットに変わったりする。デフォルトの機能で、make.namesという関数があるが、これを使ったような感じになっている。この関数はdata.frameの列名以外にも使えるみたいなので、これはこれで便利。
・これをアンダーバーなどにうまいこと変換するには、janitorのclean_names関数を使う。
> df <- clean_names(df)
> df
・ラクダ表記をアンダーバーで区切って小文字にする機能もあるっぽい。
・続いて、test_1列のaとかbの出現頻度を集計してみる。デフォルトならtable機能を使う。要素の出現頻度を数えてくれる。
> table(df$test_1)
・janitorのtablyl関数だと、割合も出してくれる。
> tabyl(df, test_1)
・割合を%表示にしたければ、ちょっと付け足せばOK。
> df %>%
+ tabyl(., test_1) %>%
+ adorn_pct_formatting(digits = 2)
・2軸の集計もできる。例えば、先のdfのtest_1とtest_2で集計してみる。
> df %>%
+ tabyl(., test_1, test_2)
・test_1ごとの割合も算出して、少しまとめる。
> df %>%
+ tabyl(., test_1, test_2) %>%
+ adorn_totals(., "col") %>% #集計列を作成
+ adorn_percentages(., "row") %>% #行ごとの割合を算出
+ adorn_pct_formatting(., digits = 2) %>% #%として表示
+ adorn_ns(.) %>% #カウントも表示
+ adorn_title(.) #test_2も表示
・例が悪かったので、もう少しうまくできるはず。。
おわり