[[Rのメモ]] **大きなデータの取り込み [#vc4bc9ad] -通常の read.csv()は遅いので、tidyverseパッケージのインストールをして、readr 関数で読む: install.packages("tidyverse") library(tidyverse) data <-read.csv("data") -自分のマシンでは 40MB くらいのデータで3倍高速(`system.time()`関数で計測) **Encoding のチェック [#le4bcdbc] -文字コードの確認は guess_encoding()関数を使うといい guess_encoding("data.csv") -結果は以下のように返してくれる: <chr> <dbl> 1UTF8 1.00 2Shift_JIS 0.780 -それを指定した読み込みは以下: product_enc <- read_csv("data.csv", locale=locale(encoding="UTF-8")) **データフレーム操作 [#g2e5a0b6] -[[dplyr 入門>https://www.jaysong.net/dplyr_intro/]] library(dplyr) newdataset <- select(dataset, variable1, variable2, ...) # Choose necessary variables only 1つのデータフレーム dataset から必要な変数(variable1, 2, ..)を抜粋して newdataset を作る filter(newdataset, variable1 > 56) %>% select(variable2, variable 1) newdataset の variable 1の値(ここでは56より大きい)でフィルタし、かつ変数2, 1 だけ値を表示 %>% はこのコマンドを逐次的に実行するという意味 -mosaic ライブラリ --欠損値を調べる際に、mosaic ライブラリの tally() 関数で is.na(variable) を検査する library(mosaic) tally(~ is.na(variable), data=dataset) ---そうすると TRUE で出てきた件数が欠損値にあたる --同様のことは favstat()関数でもできる favstats(~ variable, data=dataset) min Q1 median Q3 max mean ad n missing ---このような項目の summary が出る。最後の missing が欠損値。普通の summary()関数では欠損値は出ないので便利だ。 **変数の再集計 [#tee4c604] -memisc ライブラリ --dplyr と合わせて以下のようなコードを書くと、論理演算の式をもとに、変数の数値条件ごとにラベルを付けることが可能: > library(dplyr) > library(memisc) > newdataset = mutate(newdataset, new_variablename= cases( "LABEL A" = variable1==0, "LABEL B" = (variable1>0 & variable1<=1 & variable2<=3 & variable3==1) | (variable1>0 & variable1<=2 & variable2<=4 & variable3==0), "LABEL C" = ((variable1>1 | variable2>3) & variable3==1) | ((variable1>2 | variable2>4) & variable3==0))) --- variable1, 2, 3 の値の論理式の組み合わせで LABEL A, B, C を定義。このへんの式の内容は研究内容ごとに異なる。 ---