データの読み込み
Rでデータの読み込み→dataframe型といえば、"read.table"関数とか"read.csv"関数とかある。一度整理しておく。
- 表頭と表側がある場合
表頭と表側がある場合が一番簡単で、"read.table"関数がそのまま使える。
data1 <- read.table("withheader.csv",header = T, row.names = 1, sep = ",")
- 表頭が無い場合
header=F
とする。
- 表側が無い場合
row.names = 1
を外す。
2.欠損がある場合
データに欠損がある場合でも、Excel→csvで保存ならばカンマが挿入されるので、"read.table"関数が使える。ただしdataFrameには、データが欠損しているところには"NA"が挿入される。
問題は次のようなジャグ配列のようなパターンである。
そのまま"read.table"関数を使うとエラーが出る。このような場合には、dataFrame型には格納できないので、list型に格納することになる。
jag <- readLines("jag.csv") #(1) dataList <- as.list(NULL) #(2) for(i in 1:length(jag)){ #(3) dataList <- append(dataList,strsplit(jag[i], split = ","))}
- #(1) "readLines"関数を使って、データを一度格納する。
- #(2) list型の変数を用意する
- #(3) jagの行数分だけ、"strsplit"関数を使ってカンマで分割しながら、dataListにデータを追加していく。
ちなみに、文字列型で格納されるので、実数型で格納したい場合には"as.numeric"関数を使って適宜実数に置き換える必要がある。
dataListN <- as.list(NULL) for(i in 1:length(dataList)){ dataListN <- append(dataListN,list(as.numeric(dataList[ [i] ]))) }
これで一応ジャグ配列でも突っ込める。