モモノキ&ナノネと一緒にRでCSVファイルの読み書きを覚えよう
RでデータをCSVファイルに出力して、また読み込んでみよう。
ナノネ、統計ソフトRの使い方を練習するよ。今回はCSVファイルの読み書きを試してみよう。
CSVファイルをよく扱うから使い方を覚えておかないと。
CSVファイルを作って、それをまた読み込む方法を試してみよう。
モモノキ、練習用のデータはどうする?
データの作成練習も兼ねて適当に作っちゃおう。今回は身長と体重で作ってみよう。
データ作成はデータフレームを利用すると便利みたいだよ。データフレームはベクトルデータを準備して、data.frame(列名1=ベクトル1, 列名2=ベクトル2, ...)とすれば作成できるよ。
# ベクトルでデータ作成
height <- c(163,172,155,174,190)
weight <- c(65,80,48,68,92)
df = data.frame(HEIGHT=height, WEIGHT=weight)
print(class(df))
print(df)
データフレーム作れたよ。身長と体重の数値は適当だけど。
OK、次は作ったデータをCSVファイルに出力してみよう。write.csv(データ, ファイル名)とすれば、とりあえずファイルに書き出せるよ。
write.csv(df, "test-data1.csv")
保存されたみたいだけど、ファイルはどこ?
ファイル名だけ指定した場合は、Rのワーキングディレクトリに出力したファイルが保存されるよ。ワーキングディレクトリはgetwd()で確認できるよ。
# getwd() # ワーキングディレクトリ確認
CSVファイル無事見つかった。
ワーキングディレクトリはsetwd(ディレクトリ指定)でも変更できるよ。Jupyter Notebookだとコードを動かしている場所がワーキングディレクトリにセットされているみたい。あと、パス付でファイル名を指定すれば任意の場所に保存することもできるよ。
書き出したCSVファイルの中身を見てみる。
"","HEIGHT","WEIGHT" "1",163,65 "2",172,80 "3",155,48 "4",174,68 "5",190,92
データフレームの行インデックスや文字データに””も付くんだね。もし要らない場合はどうすればいいな?
write.csv(df, "test-data2.csv", row.names=FALSE, quote=FALSE)
オプションのrow.namesとquoteで指定できるよ。デフォルトがTRUEだからFALSEとすれば出力しないように指定できるよ。
HEIGHT,WEIGHT 163,65 172,80 155,48 174,68 190,92
次はCSVファイルの読み込みをやってみよう。read.csv()でファイル名を指定すれば、とりあえず読み込めるよ。
df_read1 = read.csv("test-data1.csv")
print(df_read1)
最初に出力したtest-data1.csvは行インデックスも書き込んでるから、普通に読み込むと行インデックスもデータして取り込んじゃうね。行インデックスを含むデータを取り込むときは、オプションでrow.name=列で行インデックスの列番号を指定すればうまくいくよ。
df_read1 = read.csv("test-data1.csv", row.names=1)
print(df_read1)
2回目に出力したtest-data2.csvは行インデックスを書き込んでないから、そのまま普通に読み込めるよ。
df_read2 = read.csv("test-data2.csv")
print(df_read2)
それと、CSVファイルによってはヘッダーが無かったりやコメント行が付いている場合があるから注意だよ。オプションのheaderやskipなど利用してデータ形式に合うように調整してね。デフォルトではheader=TRUE、skip=0みたいだけど、詳しくはドキュメントなどで調べてね(可能ならCSVファイルを整形するのも簡単でアリだね)。
今回はここまで。またね!
出番が少なかった...。またね!
0 件のコメント :
コメントを投稿