×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
欠損値の扱い
適当に欠損値を入れてirisnaというデータフレームをつくった
irisomit <- na.omit(irisna)
NAがひとつでもあるケース (行) を削除
irisexclude <- na.exclude(irisna)
na.omitと同じ
irispass <- na.pass(irisna)
何もしない。つまりirisnaと同じデータフレームを返す
irisfail <- na.fail(irisna)
オブジェクトにNAがあるかどうかを調べる。
ある場合は:以下のメッセージを返す
"以下にエラー na.fail.default(irisna) : オブジェクト中に欠損値があります"
ないときはそのままオブジェクトに代入される
irisfail <- na.fail(iris)
## irisにnaはないので、そのままirisfailというデータフレームになった
na.contiguous()
連続データからNAを含まない最長の連続部分をとりだす
適当に欠損値を入れてirisnaというデータフレームをつくった
irisomit <- na.omit(irisna)
NAがひとつでもあるケース (行) を削除
irisexclude <- na.exclude(irisna)
na.omitと同じ
irispass <- na.pass(irisna)
何もしない。つまりirisnaと同じデータフレームを返す
irisfail <- na.fail(irisna)
オブジェクトにNAがあるかどうかを調べる。
ある場合は:以下のメッセージを返す
"以下にエラー na.fail.default(irisna) : オブジェクト中に欠損値があります"
ないときはそのままオブジェクトに代入される
irisfail <- na.fail(iris)
## irisにnaはないので、そのままirisfailというデータフレームになった
na.contiguous()
連続データからNAを含まない最長の連続部分をとりだす
PR
作業ディレクトリに"package"というフォルダをつくり
関数やパッケージのzipファイルをまとめておく
関数のよみこみ
#青木先生の関数
source("package/all.R", encoding="euc-jp")
# Webから読む場合は
source("http://aoki2.si.gunma-u.ac.jp/R/src/all.R", encoding="euc-jp")
# ダウンロードしたパッケージのインストール
install.packages("package/psych_1.0-78.zip", contriburl = NULL)
# 自分用のパッケージのリスト
VR_7.2-48.zip
sem_0.9-17.zip
Rgraphviz_1.22.1.zip
QuantPsyc_1.3.zip
psych_1.0-78.zip
psy_0.7.zip
polycor_0.7-7.zip
car_1.2-14.zip
関数やパッケージのzipファイルをまとめておく
関数のよみこみ
#青木先生の関数
source("package/all.R", encoding="euc-jp")
# Webから読む場合は
source("http://aoki2.si.gunma-u.ac.jp/R/src/all.R", encoding="euc-jp")
# ダウンロードしたパッケージのインストール
install.packages("package/psych_1.0-78.zip", contriburl = NULL)
# 自分用のパッケージのリスト
VR_7.2-48.zip
sem_0.9-17.zip
Rgraphviz_1.22.1.zip
QuantPsyc_1.3.zip
psych_1.0-78.zip
psy_0.7.zip
polycor_0.7-7.zip
car_1.2-14.zip
混同しがちな用語
独立変数、説明変数、予測変数
従属変数、目的変数、基準変数
質的、カテゴリカル、定性的、離散
量的、定量的、連続量
解析手法
従属変数が質的で独立変数も質的
数量化2類
# 独立変数をダミーコード化し判別分析をすると (質的変数を予測すると) 数量化2類と同じ結果になるらしい (青木, 2005)
従属変数が質的で独立変数が量的
判別分析
従属変数が量的で独立変数が質的
数量化1類、分散分析
# 独立変数をダミーコード化し重回帰分析をすると (量的変数を予測すると) 数量化1類と同じ結果になるらしい (青木, 2005)
従属変数が量的で独立変数も量的
重回帰分析
従属変数が2値 (0か1か、生存か死亡かetc) で独立変数が量的or質的or両者のとき
ロジスティック回帰分析
従属変数が2値ではなく3分類以上 (順序尺度) -> 多項ロジスティック
独立変数、説明変数、予測変数
従属変数、目的変数、基準変数
質的、カテゴリカル、定性的、離散
量的、定量的、連続量
解析手法
従属変数が質的で独立変数も質的
数量化2類
# 独立変数をダミーコード化し判別分析をすると (質的変数を予測すると) 数量化2類と同じ結果になるらしい (青木, 2005)
従属変数が質的で独立変数が量的
判別分析
従属変数が量的で独立変数が質的
数量化1類、分散分析
# 独立変数をダミーコード化し重回帰分析をすると (量的変数を予測すると) 数量化1類と同じ結果になるらしい (青木, 2005)
従属変数が量的で独立変数も量的
重回帰分析
従属変数が2値 (0か1か、生存か死亡かetc) で独立変数が量的or質的or両者のとき
ロジスティック回帰分析
従属変数が2値ではなく3分類以上 (順序尺度) -> 多項ロジスティック
# ヒストグラムをつくる
## 1つの画面を分割して描画する
layout(matrix(1:9, 3, 3, byrow=TRUE)) # 画面を3x3の9つに分割する
for(i in 1:4){
hist(iris[,i], xlab=colnames(iris[i]))
}
## 複数のウィンドウを作成して順に描画する
for(i in 1:4){
win.graph() #新しい作図ウィンドウを開く関数
hist(iris[,i], xlab=colnames(iris[i]))
}
## 散布図の作成
plot(iris[1:5])
## 1つの画面を分割して描画する
layout(matrix(1:9, 3, 3, byrow=TRUE)) # 画面を3x3の9つに分割する
for(i in 1:4){
hist(iris[,i], xlab=colnames(iris[i]))
}
## 複数のウィンドウを作成して順に描画する
for(i in 1:4){
win.graph() #新しい作図ウィンドウを開く関数
hist(iris[,i], xlab=colnames(iris[i]))
}
## 散布図の作成
plot(iris[1:5])
# psychパッケージのdescribe.by関数でもいいが…
# グループごとの記述統計
aggregate(iris[1:4], list(iris[,5]), mean, na.rm=TRUE) # 平均
## これでも同じ aggregate(iris[1:4], iris[5], mean, na.rm = T)
aggregate(iris[1:4], list(iris[,5]), median, na.rm=TRUE) # 中央値
aggregate(iris[1:4], list(iris[,5]), sd, na.rm=TRUE) # 標準偏差
aggregate(iris[1:4], list(iris[,5]), max, na.rm=TRUE) # 最大値
aggregate(iris[1:4], list(iris[,5]), min, na.rm=TRUE) # 最小値
aggregate(iris[1:4], list(iris[,5]), length) #データ数、NAなし
aggregate(iris[1:4], list(iris[,5]), function(x) length(na.omit(x))) # データ数、NA抜き
aggregate(iris[1:4], list(iris[,5]), function(x) sum(is.na(x))) # データ数、NAのみ
# 追加
by(iris[1:4], list(a = iris[,5]), summary)
library(psych)
describe(iris)
by(iris[1:4], list(a = iris[,5]), describe)
describe.by(iris[1:4], iris[5])
# グループごとの記述統計
aggregate(iris[1:4], list(iris[,5]), mean, na.rm=TRUE) # 平均
## これでも同じ aggregate(iris[1:4], iris[5], mean, na.rm = T)
aggregate(iris[1:4], list(iris[,5]), median, na.rm=TRUE) # 中央値
aggregate(iris[1:4], list(iris[,5]), sd, na.rm=TRUE) # 標準偏差
aggregate(iris[1:4], list(iris[,5]), max, na.rm=TRUE) # 最大値
aggregate(iris[1:4], list(iris[,5]), min, na.rm=TRUE) # 最小値
aggregate(iris[1:4], list(iris[,5]), length) #データ数、NAなし
aggregate(iris[1:4], list(iris[,5]), function(x) length(na.omit(x))) # データ数、NA抜き
aggregate(iris[1:4], list(iris[,5]), function(x) sum(is.na(x))) # データ数、NAのみ
# 追加
by(iris[1:4], list(a = iris[,5]), summary)
library(psych)
describe(iris)
by(iris[1:4], list(a = iris[,5]), describe)
describe.by(iris[1:4], iris[5])