第5回 Rを用いた統計講座(基礎編)〜「Rのコマンド利用」〜

2020年9月15日

本講座では、下記リンク先の第4回で学んだ「男性の年齢別(10代)運動能力のcsvファイル」データを読み込み解説を行います。

Rでは、読み込んだデータの行数や、列数をカウントするコマンドがあります。

サンプルコード

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

コマンド用法
ncow(df)データ(df)の行数を参照します。
ncol(df)データ(df)の列数を参照します。

Rでは、読み込んだデータの行名や、列名を表示するコマンドがあります。

サンプルコード

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

コマンド用法
colnames(df)データ(df)の列名を参照します。
rownames(df)データ(df)の行名を参照します。

Rでは、同じものをたくさん並べるベクトルの生成をするコマンドがあります。

サンプルコード

numeric(7)
rep(3,5)

コマンド用法
numeric(a)0をa個並べます。
rep(b, c)bをc個並べます。

JavaやC言語なども変数に型があるように、Rでも変数に型があります。例えば、「1」が数字か文字なのかでは、意味が異なります。「1」が、数字であれば、計算に利用出来ますが、文字であれば、計算時エラーが発生する可能性があります。

そのため、Rでは、型の変換、変数の型の確認に関する以下のコマンドが用意されています。

サンプルコード

da <-123
da.ch <- as.character(da)
da <- as.numeric(da.ch)
is.character(da)
is.numeric(da)
is.numeric(da.ch)

コマンド用法
as.character(da)daを文字列に変換します。
as.numeric(da.ch)da.chを数字に変換します。
is.character(da)daが文字列型か判定します。daが文字列型ならTRUE、文字列型以外ならFALSE
is.numeric(da.ch)da.chが数字型か判定します。da.chが数字型ならTRUE、数字型以外ならFALSE

「NA」は「欠損値」のことです。解析されるデータの全ては完全データとは限りません。(データが抜ける(データが取れない)など欠損値がある場合があります。)

Rでは、欠損値があるか調べるコマンド、欠損値を除くコマンドがあります。

サンプルコード

x <- c(1,NA,3,NA,5)
is.na(x)
na.omit(x)

コマンド用法
is.na(x)NA(欠損値)かどうか調べます。(NAの場合TRUE)
na.omit(x)NA(欠損値)を除きます。

Rでは、ベクトルの長さを調べるコマンドと、重複する要素を除くコマンドがあります。

サンプルコード

x <- c(2,4,7,9,12)
length(x)
y <- c(0,1,2,4,0,1,2,4,5,0,1)
unique(y)

コマンド用法
length(x)ベクトル(x)の長さを調べます。
unique(y)ベクトル(y)の重複要素を除きます。

Rでは、2つのベクトルの差集合、和集合、積集合を取り出すコマンドがあります。

サンプルコード

k <- 1:6
k
l <- seq(2,10,by=2)
l
union(k,l)
setdiff(k,l)
intersect(k,l)

コマンド用法
union(k,l)和集合(k,lに含まれる要素の全て)
setdiff(k,l)差集合(kに含まれる要素から、lに含まれる要素を除きます。)
intersect(k,l)積集合(k,l両方に含まれる要素)

Rには、for文が用意されています。for文というのは繰り返し文になります。

サンプルコードをもとに、プログラムの意味を説明します。iに1を代入し、for文の中身を実行し、終わったらiに2を代入し、for文の中身を実行します。終わったら、今度はiに3を代入し….。(これを繰り返し、)iに5を代入し、for文の中身を実行したら、終了します。つまり、for文の中身のプログラムを5回繰り返すプログラムです。

サンプルコード

x <- 0
for(i in 1:5){
x = x +1
}
x

コマンド用法
for(i in a:b )iをaからbまでに代入し繰り返します。

Rには、if文が用意されています。条件式を書き、条件式が真の時のみif文の中身を実行します。

サンプルコード

x <- 0
if(x == 0){
x = x + 1
}
x
y <- 0
if(y == 1){
y = y +1
}
y

コマンド用法
if(条件式)条件式が正の場合のみif文の中身を実行されます。

Rには、今回紹介したコマンドの他にも便利なコマンドがあります。以下で紹介していきます。

サンプルコード

a <- c(1,3,4,6,10)
mean(a)
var(a)
sd(a)
median(a)
sum(a)
max(a)
min(a)
rev(a)
order(a)
sort(a) 

コマンド用法
mean(a)ベクトル(a)の平均値
var(a)ベクトル(a)の分散
sd(a)ベクトル(a)の標準偏差
median(a)ベクトル(a)の中央値
sum(a)ベクトル(a)の合計値
max(a)ベクトル(a)の最大値
min(a)ベクトル(a)の最小値
rev(a)ベクトル(a)を逆順にします。
order(a)ベクトル(a)の要素を小さい順に見たとき、何番目なのかを出力
sort(a)ベクトルを小さい順(昇順)に並べます。

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

コマンド用法
ncow(df)データ(df)の行数を参照します。
ncol(df)データ(df)の列数を参照します。
colnames(df)データ(df)の列名を参照します。
rownames(df)データ(df)の行名を参照します。
numeric(a)0をa個並べます。
rep(b, c)bをc個並べます。
as.character(da)daを文字列に変換します。
as.numeric(da.ch)da.chを数字に変換します。
is.character(da)daが文字列型か判定します。daが文字列型ならTRUE、文字列型以外ならFALSE
is.numeric(da.ch)da.chが数字型か判定します。da.chが数字型ならTRUE、数字型以外ならFALSE
is.na(x)NA(欠損値)かどうか調べます。(NAの場合TRUE)
na.omit(x)NA(欠損値)を除きます。
length(x)ベクトル(x)の長さを調べます。
unique(y)ベクトル(y)の重複要素を除きます。
union(k,l)和集合(k,lに含まれる要素の全て)
setdiff(k,l)差集合(kに含まれる要素から、lに含まれる要素を除きます。)
intersect(k,l)積集合(k,l両方に含まれる要素)
for(i in a:b )iをaからbまでに代入し繰り返します。
if(条件式)条件式が正の場合のみif文の中身を実行されます。