お知らせ

ただいま、シンタックスハイライターの設定を見直しております。
プログラムが見にくくなっているページがありますが、ご容赦ください。

CSVファイルやExcelファイルをRで読み書きしてみる

データの活用

こんにちは。PythonでCSVファイルやExcelのファイルの読み書きを前回・前々回に取り上げました。

Rでもデータを扱っていたので、今度はRでCSVやExcelのファイルを読み書きしてみます。

CSVファイルをRで読み込む

読み込むCSVファイルは前々回と同じファイルですが、一応載せておきます。

CSVファイルのファイル名をtemp.csvとし、文字コードがUTF-8で保存されているとします。

年月日時,気温(℃)
2018/7/23 1:00,30.6
2018/7/23 2:00,29.5
2018/7/23 3:00,29.2
2018/7/23 4:00,28.9
2018/7/23 5:00,28.2
2018/7/23 6:00,28.6
2018/7/23 7:00,29.9
2018/7/23 8:00,33
2018/7/23 9:00,34
2018/7/23 10:00,36
2018/7/23 11:00,37.9
2018/7/23 12:00,38.7
2018/7/23 13:00,39.8
2018/7/23 14:00,40
2018/7/23 15:00,39.3
2018/7/23 16:00,39
2018/7/23 17:00,37.9
2018/7/23 18:00,35.9
2018/7/23 19:00,34.2
2018/7/23 20:00,32.6
2018/7/23 21:00,31.9
2018/7/23 22:00,31.6
2018/7/23 23:00,28.8
2018/7/24 0:00,27.9

それでは、Rで読み込んでみます。

df <- read.csv("temp.csv")

実行結果です。

          年月日時 気温...
1   2018/7/23 1:00    30.6
2   2018/7/23 2:00    29.5
3   2018/7/23 3:00    29.2
4   2018/7/23 4:00    28.9
5   2018/7/23 5:00    28.2
6   2018/7/23 6:00    28.6
7   2018/7/23 7:00    29.9
8   2018/7/23 8:00    33.0
9   2018/7/23 9:00    34.0
10 2018/7/23 10:00    36.0
11 2018/7/23 11:00    37.9
12 2018/7/23 12:00    38.7
13 2018/7/23 13:00    39.8
14 2018/7/23 14:00    40.0
15 2018/7/23 15:00    39.3
16 2018/7/23 16:00    39.0
17 2018/7/23 17:00    37.9
18 2018/7/23 18:00    35.9
19 2018/7/23 19:00    34.2
20 2018/7/23 20:00    32.6
21 2018/7/23 21:00    31.9
22 2018/7/23 22:00    31.6
23 2018/7/23 23:00    28.8
24  2018/7/24 0:00    27.9

CSVファイルの文字コードがShift-JISの場合は、次のようにします。

df <- read.csv(file("temp.csv",encoding="cp932"))

CSVファイルに書き出してみる

次は,CSVファイルに書き出します。

write.csv(df,"temp2.csv",fileEncoding="cp932",row.names=F)

文字コードをShift-JISで保存するために、fileEncoding="cp932″としています。

これを省略すると、UTF-8で書き出されます。

また、row.names=Fとありますが,これを省略すると行番号が付いてしまいます。

Excelファイルを読み込んでみる

次にExcelファイルから読み込んでみます。

データは前回と同じ埼玉県内のAED設置場所情報を使います。

install.packages("openxlsx")
library(openxlsx)
df <- read.xlsx("aedh3103.xlsx")
head(df)

先頭の数レコード分のデータを見た結果です。

  団体コード 団体名                設置場所_名称 設置場所_名称_カナ
1     110001 埼玉県 埼玉県立浦和第一女子高等学校                 NA
2     110001 埼玉県                     埼玉会館                 NA
3     110001 埼玉県   地方職員共済組合埼玉診療所                 NA
4     110001 埼玉県   地方職員共済組合埼玉診療所                 NA
5     110001 埼玉県                     埼玉県庁                 NA
6     110001 埼玉県                     埼玉県庁                 NA
                             設置場所_住所 設置場所_電話番号 設置場所_緯度 設置場所_経度
1   埼玉県さいたま市浦和区岸町3-8-45                NA      35.85272      139.6584
2     埼玉県さいたま市浦和区高砂3-1-4                NA      35.85750      139.6520
3 埼玉県さいたま市浦和区高砂3-14-21                NA      35.85838      139.6476
4 埼玉県さいたま市浦和区高砂3-14-21                NA      35.85830      139.6476
5   埼玉県さいたま市浦和区高砂3-15-1                NA      35.85700      139.6491
6   埼玉県さいたま市浦和区高砂3-15-1                NA      35.85871      139.6488
                   設置場所_詳細 情報源(ソース) 利用可能時間 利用可能日 開始時間 終了時間 日時備考
1                   事務室入口横               NA           NA         NA       NA       NA       NA
2         会館管理棟入口警備員室               NA           NA         NA       NA       NA       NA
3                     内科診療室               NA           NA         NA       NA       NA       NA
4 地方職員共済組合埼玉診療所内科               NA           NA         NA       NA       NA       NA
5             本庁舎1階 南玄関               NA           NA         NA       NA       NA       NA
6         第2庁舎 1階北側玄関               NA           NA         NA       NA       NA       NA
  小児用パッドの有無 AED画像_画像 AED画像_ライセンス AED画像_画像テキスト
1                 NA           NA                 NA                   NA
2                 NA           NA                 NA                   NA
3                 NA           NA                 NA                   NA
4                 NA           NA                 NA                   NA
5                 NA           NA                 NA                   NA
6                 NA           NA                 NA                   NA

Excelファイルに書き出してみる

変数dfに記憶しているデータフレームを、newFile.xlsxというファイル名で書きだします。

 write.xlsx( df, file = "newFile.xlsx" )

これで、現在の作業ディレクトリに書き出されています。

現在の作業ディレクトリがわからなければ、getwd()により調べることができます。

今回はこれでおしまいにします。それではまた。

この記事を書いた人
春日井 優

高校で情報科という教科を担当しています。以前は数学科も担当していました。(今でも数学科の教員免許状は有効です。)プログラムを覚えたのは、「ゲームセンターあらし」という漫画のキャラクターがBASICを解説する「こんにちはマイコン」を読んだことがきっかけでした。

Posted by kasugai