surgのブログ

日々のネタ忘備録。勉強用。R初心者。切ったり縫ったりする人。

エクセルで受け取ったデータをmergeする

データの突合はRで。Excelあんま好きちゃうし。
mergeする。ついでに、xlsxをそのままdataframeに読み込んでしまう。

  • xlsx packageを使ってみる。
  • xlsxで行数の多いデータを読むと時間がかかるのが微妙。
  • 日本語入れていると化けるので、encodingをちゃんと指定。
  • 出力はcsvで充分。write.csv関数を使用。
library(xlsx)
hoge <- read.xlsx("hoge.xlsx", 1, encoding="UTF-8")
foo <- read.xlsx("foo.xlsx", 1, encoding="UTF-8")
huga <- merge(hoge, foo, by="ID")
write.csv(huga, "huga.csv", quote=FALSE, row.names=FALSE)

#quote=FALSEにしておかないと各要素が""で囲まれる
#row.names=FALSEにしておかないと行番号が1列目のデータになってしまう

単なる忘備録と化した。

2018.4.16.追記

  • xlsx packageよりもreadxlが速い。断然速い。すこぶる速い。
library(readxl)
hoge <- read_excel("hoge.xlsx")
foo <- read_excel("foo.xlsx")
huga <- merge(hoge, foo, by="ID")
write.csv(huga, "huga.csv", quote=FALSE, row.names=FALSE)

日本語は特に何も指定しなかったですが、Win環境では化けませんでした。