第4回 Rを用いた統計講座(基礎編)〜「Rでデータ読み込み」「Rでデータ参照」「Rでデータ取り出し」〜

2020年9月15日

「R」では、CSVファイルを読み込み解析を行うことができます。本講座では、下記リンク先の男性の年齢別(10代)運動能力のcsvファイルデータを読み込み解説を行います。

「男性_年齢別運動能力.csv」のデータ内容は以下の通りです。

年代握力上体起こし反復横とび50m走
10歳17.3620.0942.979.26
11歳20.0421.6945.798.9
12歳24.6425.1149.588.4
13歳29.9328.6753.337.85
14歳35.730.7855.647.44
15歳38.6829.5454.947.47
16歳41.3131.4358.647.28
17歳43.1832.2757.557.19
18歳41.9330.6257.647.36
19歳42.5730.1157.177.38

「男性_年齢別運動能力.csv」のデータをRに読み込みます。データの読み込みコマンドは以下の通りです。

なお、「男性_年齢別運動能力.csv」は、作業ディレクトリ上に、ファイルを格納しておく必要があります。作業ディレクトリの指定方法は、下記リンク先の「プログラムの実行方法」を参照下さい。

Rでは、csv形式のファイルをデータフレーム型で読み込む時に使う関数として「read.csv()」関数が用意されています。

コマンド用法
read.csvcsv形式のファイル読み込みを行う関数です。”ファイル名.csv”の形式ファイルを読み込みます。
header1行目を列名として読み込むか否か判定する。header=T(True)で1行目は列名扱います。
row.namesデータ読み込み時に行名を設定します。row.names = a でa列名を行明として扱います。空白で行明無しとして扱います。
fileEncodingmacの場合、「fileEncoding=“CP932″」を入力しないと読み込みエラーになる場合があります。(windowsは基本入力不要です。)
サンプルコード

df <- read.csv(“男性_年齢別運動能力.csv", header=T, row.names=1, fileEncoding="CP932″)
df

データフレームの特徴は、指定することで任意の要素へ参照(アクセス)できることです。(例:データの1行目のみを参照、1列目のみを参照、列名が「反復横とび」の列だけ参照…)

サンプルコード

df[,1]
df[1,]
df$上体起こし
df[,c(2,3)]

コマンド用法
df$列名「列名」という名の列データを参照します。
df[ ,a]a列目のデータを参照します。
df[b, ]b行目のデータを参照します。
df[, c(a, b)]a列目とb列目のデータを参照します。

Rでは、データの任意の部分を参照するだけでなく、他の変数に代入することによって保存することが出来ます。大きなデータから必要なデータだけを取り出し保存したい時に利用出来ます。

コマンド用法
subset(変数,条件)
変数の条件に合うものを取り出します。subset(df,df$X50m走 <8 )では、dfという変数のX50m走列が8より小さいものを取り出します。
変数[行の条件,列の条件]変数内の条件に合うものを取り出します。
“=="一致を表します。a==bでaがbと等しいときTRUE(真)になります。
<=,>=それぞれ以下、以上の意味を表します。条件を満たすときはTRUEを返します。
&かつの意味です。(条件式A & 条件式B)で条件式Aと条件式Bを両方満たすとき、TRUEを表します。
サンプルコード

a <- subset(df,df$X50m走 < 8)
a
b<-df[df[,4] < 8,]
b
c <- subset(df, df$上体起こし >=21 & df$反復横とび<=57)
c
d <- subset(df, df$握.力 == 38.68  & df$X50m走<8)
d

「第4回 Rを用いた統計講座(基礎編)」で学んだコマンドは、以下になります。

コマンド用法
read.csvcsv形式のファイル読み込みを行う関数です。”ファイル名.csv”の形式ファイルを読み込みます。
header1行目を列名として読み込むか否か判定する。header=T(True)で1行目は列名扱います。
row.namesデータ読み込み時に行名を設定します。row.names = a でa列名を行明として扱います。空白で行明無しとして扱います。
fileEncodingmacの場合「fileEncoding=“CP932″」を入力しないと読み込みエラーになる場合があります
df$列名「列名」という名の列データを参照します。
df[ ,a]a列目のデータを参照します。
df[b, ]b行目のデータを参照します。
df[, c(a, b)]a列目とb列目のデータを参照します。
subset(変数,条件)
変数の条件に合うものを取り出します。subset(df,df$X50m走 <8 )では、dfという変数のX50m走列が8より小さいものを取り出します。
変数[行の条件,列の条件]変数内の条件に合うものを取り出します。
“=="一致を表します。a==bでaがbと等しいときTRUE(真)になります。
<=,>=それぞれ以下、以上の意味を表します。条件を満たすときはTRUEを返します。
&かつの意味です。(条件式A & 条件式B)で条件式Aと条件式Bを両方満たすとき、TRUEを表します。