R へのデータのインポート: CSV、Excel、SPSS、Stata、SAS ファイルの読み取り
データはさまざまな形式で存在する可能性があります。 各フォーマットごとに R 特定の関数と引数があります。 このチュートリアルでは、R にデータをインポートする方法について説明します。
CSVの読み込み
最も広く使用されているデータ ストアの XNUMX つは、.csv (カンマ区切り値) ファイル形式です。 R は、起動時に utils パッケージを含むライブラリの配列を読み込みます。 このパッケージは、reading.csv() 関数と組み合わせて csv ファイルを開くのに便利です。 read.csv の構文は次のとおりです。
read.csv(file, header = TRUE, sep = ",")
引数:
- file: ファイルが保存されているPATH
- ヘッダ: ファイルにヘッダーがあるかどうかを確認します。デフォルトでは、ヘッダーは TRUE に設定されています。
- 9月: 変数を分割するために使用される記号。 デフォルトでは、「,」です。
データファイル名 mtcats を読み込みます。 CSV ファイルはオンラインに保存されます。 .csv ファイルがローカルに保存されている場合は、コード スニペット内の PATH を置き換えることができます。 「 」で囲むことを忘れないでください。 PATH は文字列値である必要があります。
Mac ユーザーの場合、ダウンロード フォルダーのパスは次のとおりです。
"/Users/USERNAME/Downloads/FILENAME.csv"
Windows ユーザーの場合:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
ファイル名の拡張子を常に指定する必要があることに注意してください。
- この.csv
- 。XLSX
- 。TXT
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
出力
## [1] 12
class(df$X)
出力
## [1] "factor"
R はデフォルトで文字値を Factor として返します。 stringsAsFactors = FALSE を追加することで、この設定をオフにできます。
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
出力
## [1] "character"
変数 X のクラスは文字になりました。
Excelファイルを読む
Excel ファイルはデータ アナリストの間で非常に人気があります。 スプレッドシートは操作が簡単で柔軟性があります。 R には、Excel スプレッドシートをインポートするためのライブラリ readxl が装備されています。
このコードを使用する
require(readxl)
readxl がマシンにインストールされているかどうかを確認します。 r-conda-essential を使用して r をインストールすると、ライブラリはすでにインストールされています。 コマンド ウィンドウに次の内容が表示されるはずです。
出力
Loading required package: readxl.
パッケージが存在しない場合は、conda を使用してインストールできます。 ライブラリ または、ターミナルで conda install -c mittner r-readxl を使用します。
ライブラリをロードして Excel ファイルをインポートするには、次のコマンドを使用します。
library(readxl)
readxl_example()
このチュートリアルでは、readxl パッケージに含まれる例を使用します。
コードを使用する
readxl_example()
ライブラリ内の利用可能なすべてのスプレッドシートを表示します。
Clippy.xls という名前のスプレッドシートの場所を確認するには、次のコマンドを使用します。
readxl_example("geometry.xls")
conda を使用して R をインストールする場合、スプレッドシートは Anaconda3/lib/R/library/readxl/extdata/filename.xls にあります。
read_excel()
関数 read_excel() は、xls および xlsx 拡張子を開く場合に非常に役立ちます。
構文は次のとおりです。
read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE) arguments: -PATH: Path where the excel is located -sheet: Select the sheet to import. By default, all -range: Select the range to import. By default, all non-null cells -col_names: Select the columns to import. By default, all non-null columns
readxl ライブラリからスプレッドシートをインポートし、最初のシートの列数をカウントできます。
# Store the path of `datasets.xlsx` example <- readxl_example("datasets.xlsx") # Import the spreadsheet df <- read_excel(example) # Count the number of columns length(df)
出力
## [1] 5
エクセルシート()
ファイル datasets.xlsx は 4 つのシートで構成されています。 Excel_sheets() 関数を使用すると、ブック内でどのシートが利用可能であるかを確認できます。
example <- readxl_example("datasets.xlsx") excel_sheets(example)
出力
[1] "iris" "mtcars" "chickwts" "quakes"
ワークシートに多数のシートが含まれている場合、シート引数を使用して特定のシートを簡単に選択できます。 シートの名前またはシート インデックスを指定できます。 両方の関数が同じ出力を返すかどうかは、identify() で確認できます。
example <- readxl_example("datasets.xlsx") quake <- read_excel(example, sheet = "quakes") quake_1 <-read_excel(example, sheet = 4) identical(quake, quake_1)
出力
## [1] TRUE
どのセルを読み取るかを 2 つの方法で制御できます
- n 行を返すには n_max 引数を使用します
- 範囲引数を cell_rows または cell_cols と組み合わせて使用します
たとえば、最初の 5 行をインポートするには、n_max を XNUMX に設定します。
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Col_names を FALSE に変更すると、R はヘッダーを自動的に作成します。
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
データ フレーム iris_no_header で、R は X__1、X__2、X__3、X__4、および X__5 という名前の XNUMX つの新しい変数を作成しました。
引数の範囲を使用して、スプレッドシート内の行と列を選択することもできます。 以下のコードでは、Excel スタイルを使用して A1 から B5 までの範囲を選択します。
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
出力
## [1] 4 2
example_1 が 4 列の 2 行を返していることがわかります。 データセットにはヘッダーがあり、これが次元が 4×2 である理由です。
1 番目の例では、返す行の範囲を制御する関数 cell_rows() を使用します。 行 5 から 1 をインポートしたい場合は、cell_rows(5:1) を設定できます。 cell_rows(5:5) は cell_rows(1:XNUMX) と同じ出力を返すことに注意してください。
# Read rows 1 to 5 example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE) dim(example_2)
出力
## [1] 4 5
ただし、example_2 は 4×5 行列です。 iris データセットにはヘッダー付きの 5 つの列があります。 すべての列のヘッダーを含む最初の XNUMX 行を返します。
最初の行から始まらない行をインポートする場合は、col_names = FALSE を含める必要があります。 range = cell_rows(2:5) を使用すると、データ フレームにヘッダーがないことが明らかになります。
iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE) iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)
We can select the columns with the letter, like in Excel. # Select columns A and B col <-read_excel(example, range =cell_cols("A:B")) dim(col)
出力
## [1] 150 2
注: range = cell_cols(“A:B”)、null 以外の値を持つすべてのセルを出力します。 データセットには 150 行が含まれているため、read_excel() は最大 150 行を返します。これは dim() 関数で検証されます。
read_excel() は、セル内に数値のない記号が出現した場合、NA を返します。 XNUMX つの関数を組み合わせて欠損値の数を数えることができます
- 合計
- は。な
これがコードです
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
出力
## [1] 50
欠落している値が 50 個あります。これらは setosa 種に属する行です。
他の統計ソフトウェアからデータをインポートする
Heaven パッケージを使用して、さまざまなファイル形式をインポートします。 このパッケージのサポート SAS、STATA、SPSS ソフトウェア。ファイルの拡張子に応じて、次の関数を使用してさまざまな種類のデータセットを開くことができます。
- SAS: read_sas()
- STATA: read_dta() (または read_stata()、どちらも同一)
- SPSS: read_sav() または read_por()。 拡張子を確認する必要があります
これらの関数内で必要な引数は XNUMX つだけです。 ファイルが保存されている PATH を知る必要があります。 これで、SAS、STATA、SPSS のすべてのファイルを開く準備が整いました。 これら XNUMX つの関数は URL も受け入れます。
library(haven)
ヘイブンにはコンダR-エッセンシャルが付属しています。それ以外の場合は またはターミナルでconda install -c conda-forge r-haven
サスを読む
この例では、IDRE の入場データセットを使用します。
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
出力
## # A tibble: 6 x 4 ## ADMIT GRE GPA RANK ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
ステータスを読む
STATA データ ファイルの場合は、read_dta() を使用できます。 まったく同じデータセットを使用しますが、.dta ファイルに保存します。
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
出力
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
SPSSを読む
read_sav() 関数を使用して SPSS ファイルを開きます。 ファイル拡張子「.sav」
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
出力
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
データインポートのベストプラクティス
R にデータをインポートする場合、次のチェックリストを実装すると便利です。これにより、R にデータを正しくインポートしやすくなります。
- スプレッドシートの一般的な形式は、最初の行をヘッダー (通常は変数名) として使用することです。
- データセットに空白スペースを含む名前を付けないでください。 別の変数として解釈される可能性があります。 あるいは、「_」または「-」を使用することをお勧めします。
- 短い名前が好まれます
- 名前に記号を含めないでください。つまり、exchange_rate_$_€ は正しくありません。 名前を付けることをお勧めします:exchange_rate_dollar_euro
- それ以外の場合は、欠損値に NA を使用します。後で形式をクリーンアップする必要があります。
まとめ
次の表は、R でさまざまな種類のファイルをインポートするために使用する関数をまとめたものです。最初の列は関数に関連するライブラリを示します。最後の列はデフォルトの引数を示します。
図書室へようこそ | DevOps Tools Engineer試験のObjective | 演算 | デフォルトの引数 |
---|---|---|---|
ユーティリティ | CSVファイルの読み込み | read.csv() | ファイル、ヘッダー =,TRUE、sep = "," |
readxl | EXCELファイルの読み込み | read_excel() | パス、範囲 = NULL、col_names = TRUE |
避難所 | SASファイルの読み込み | read_sas() | path |
避難所 | STATAファイルの読み込み | read_stata() | path |
避難所 | SPSSファイルを読む | read_sav() | path |
次の表は、read_excel() 関数を使用して選択範囲をインポートするさまざまな方法を示しています。
演算 | DevOps Tools Engineer試験のObjective | Arguments |
---|---|---|
read_excel() | n 行を読み取ります | n_max = 10 |
Excelのように行と列を選択します | 範囲 = 「A1:D10」 | |
インデックスのある行を選択する | 範囲=セル行数(1:3) | |
文字が含まれる列を選択する | range = cell_cols(“A:C”) |