![]()

今日のお話はここ
R で分析するためには、データを R に読み込まなければなりません。
(データ分析の方針がだいたい決まったので)
あなた「(上司)さん、R の環境整えたんでデータください!」
上司「OK、購買データはあの tsvファイルで、商品マスタはあっちの csv。それぞれ 100MB くらいだったかな。それと EC サイトのアクセスログは データベースにあって、データ定義は エクセルで来てるからあとで送るね。」
あなた「りょ、了解です。(データ形式くらい統一しとけよ…)」




setwd() を書く必要はありませんreadr パッケージの read_csv 関数を使いたいとき
# 方法 1
library(readr)
dat <- read_csv("hoge.csv")
# 方法 2
dat <- readr::read_csv("hoge.csv")read.csv()dat <- read.csv("sample.csv", stringAsFactors = FALSE)readr::read_csv()library(readr)
dat <- read_csv("sample.csv")data.table::fread()readr::read_csv よりも高速data.table = FALSElibrary(data.table)
dat <- fread("sample.csv", data.table = FALSE)system.time(dat <- read.csv("./data/log.csv")) user system elapsed
55.032 0.874 56.872
system.time(dat2 <- readr::read_csv("./data/log.csv")) user system elapsed
3.602 0.177 3.808
system.time(dat3 <- data.table::fread("./data/log.csv"))
Read 66.8% of 3460200 rows
Read 3460193 rows and 5 (of 5) columns from 0.477 GB file in 00:00:03
user system elapsed
2.413 0.131 2.561
read.delim()read.delim()は区切り値のファイルを読む標準関数read.csv()は sep = ","をつけたものdat <- read.delim("sample.tsv", stringAsFactors = FALSE)readr::read_tsv()library(readr)
dat <- read_tsv("sample.tsv")data.table::fread()library(data.table)
dat <- fread("sample.tsv", data.table = FALSE)read.delim()dat <- read.delim("sample.tsv", stringAsFactors = FALSE, sep = "|")readr::read_delim()library(readr)
dat <- read_delim("sample.tsv", "|")data.table::fread()library(data.table)
dat <- fread("sample.tsv", data.table = FALSE)read_***()関数が一番オススメ| read.*** | read_*** | fread | |
|---|---|---|---|
| 速さ(500MB) | 約 1 分 | 8 秒 | 3 秒 |
| 区切り地値の判定ミス | × | × | △ |
| エンコーディング | ○ | ○ | △ |
dat <- readxl::read_excel("sample.xlsx", sheet = "シート名")
# シート名はシート番号でも OKhaven パッケージで読み込み
dat <- haven::read_sas("sample.sas7bdat")dat <- haven::read_dta("sample.dta")dat <- haven::read_sav("sample.sav")Encoding=cp932Encoding=UTF8dat <- read.csv("sample.csv", stringAsFactors = FALSE, fileEncoding = "cp932")dat <- readr::read_csv("sample.csv", locale = locale(encoding = "cp932"))dat <- data.table::fread("sample.csv", data.table = FALSE) %>%
dplyr::mutate(VAR1 = iconv(VAR1, from = "UTF8", to = "CP932"))

気になる方は rvestやRSelenium、rtweetパッケージを検索!
ググると、意外といろいろ出てきます
下記 URL でソースコードを公開しています