LoginSignup
0
0

More than 3 years have passed since last update.

Rテクニック データの読み込み csv/excel/sas7bdat

Last updated at Posted at 2020-07-07

Rによるcsv/excel/sas7bdatの読み込み

read.csvなどが用意されているが、遅い
freadやreadrがおすすめ
SASデータセットの読み込みならhavenやsas7bdat

fread

# ライブラリ
library(data.table)
library(tidyverse)
library(sas7bdat)

# dataの保管先
File_Pass <- "パス/ファイル名"

# 列の名前や型を定義しておく
Var_Name <- c( "列名1" , "列名2" , "列名3" )
Var_Type <- c( "character" , "numeric" , "numeric" )

Csv_Data <- fread( file = File_Pass , sep = "," , col.names = Var_Name , colClasses = Var_Type , stringsAsFactors = FALSE , skip = 1 , header = FALSE , na.strings = "" , data.table = FALSE )

sep = ","を変更すれば、区切り文字が「,」じゃなくても読み込むことが可能
skip = で何行目から読むのか(1行目に列名あるのかどうかなど)
header = FALSEで列名をcsvから取らない
(データに列名まで含まれていない場合や、列名はskipしている場合に使用)

列の定義面倒くさい場合、全部文字変数としてしまえばいいかも

readr

read_csv:csv読み込み
read_delim:テキストファイル読み込み(区切り文字を選べる)
excelはreadxlのread_excelでも読み込める
シートはsheetかrangeで指定

File_Pass <- "パス/ファイル名"
Rg <- "シート名!A1:E100"
Excel_Data <- readxl::read_excel( path = File_Pass , range = Rg )

readrはチートシートあるので、細かな仕様は略
(Rstudioにていくつかのチートシートを公開している)
https://rawgit.com/rstudio/cheatsheets/master/data-import.pdf

日本語含むときはこっちのほうが使いやすい

sas7bdat

read.sas7bdat:SASデータセット読み込み

特別な指定は不要

File_Pass <- "パス/ファイル名"
Data <- read.sas7bdat( file = File_Pass )

※sas7bdatの場合はcompress = yesしているデータセットを読み込めないため、havenのread_sasの方がいいかも
ただし、havenのread_sasは日本語のデータでエラーが出ることがあったので、微妙な感じもする…

https://www.rdocumentation.org/packages/readr/versions/1.3.1
https://www.rdocumentation.org/packages/readxl/versions/1.3.1/topics/read_excel
https://readxl.tidyverse.org/reference/read_excel.html
https://readxl.tidyverse.org/reference/cell-specification.html
https://www.rdocumentation.org/packages/data.table/versions/1.14.0/topics/fread
https://www.rdocumentation.org/packages/sas7bdat/versions/0.5/topics/read.sas7bdat
https://www.rdocumentation.org/packages/haven/versions/2.4.1/topics/read_sas
https://haven.tidyverse.org/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0