データフレームとファイル
(Press ?
for help, n
and p
for next and previous slide)
村田 昇
2019.10.04
マトリクスを変換する (全て数字の場合)
(x <- data.frame(one=c(1,2,3),two=c("AB","CD","EF"))) x[1,2] # 1行2列の要素を選択 x[c(TRUE,FALSE,TRUE),] # 1,3行を選択 x$two # 列"two"を選択 x["two"] # 列名"two"を選択 x[-c(1,3),] # 1,3行を除外 (y <- data.frame(three=c("x","y","z"),four=c(0.9,0.5,-0.3))) (z <- cbind(x,y))
次の表に対応するデータフレームを作成しなさい
math | phys | chem | bio | |
---|---|---|---|---|
A | 90 | 25 | 65 | 70 |
B | 80 | 50 | 100 | 50 |
C | 70 | 75 | 70 | 30 |
D | 60 | 100 | 40 | 80 |
E | 50 | 80 | 75 | 100 |
getwd()
setwd()
関数 write.csv()
: CSVファイルの書き出し
write.csv(x, file="mydata.csv") ## x: 書き出すデータフレーム ## file: 書き出すファイルの名前 (作業ディレクトリ下,またはパスを指定)
関数 read.csv()
: CSVファイルの読み込み
x <- read.csv(file="mydata.csv", header=TRUE, row.names=1) ## x: 読み込む変数 ## file: 書き出すファイルの名前 (作業ディレクトリ下,またはパスを指定) ## header: 1行目を列名として使うか否か ## row.names: 行名の指定 (行名を含む列番号/列名または行名のベクトル)
関数 save()
: RDataファイルの書き出し
save(..., file="mydata") ## ...: 保存するオブジェクト名 (複数指定可,データフレーム以外も可) ## file: 書き出すファイルの名前 (作業ディレクトリ下,またはパスを指定)
関数 load()
: RDataファイルの読み込む
load(file="mydata") ## file: 読み込むファイルの名前 (作業ディレクトリ下,またはパスを指定)
要素を選択
(x <- data.frame(one=c(1,2,3),two=c("AB","CD","EF"))) x[1,2] # 1行2列の要素を選択 x[-c(1,3),] # 1,3行を除外 x[c(TRUE,FALSE,TRUE),] # 1,3行を選択 x[,"two"] # 列名"two"を選択
関数 subset()
: 条件を指定して行と列を選択
subset(x,subset,select,drop=FALSE) ## x: データフレーム ## subset: 行に関する条件 ## select: 列に関する条件(未指定の場合は全ての列) ## drop: 結果が1行または1列となる場合にベクトルとして返すか否か
datasets::mtcars
から以下の条件を満たすデータを取り出しなさい
cyl
)車の燃費(mgp
)と排気量(disp
)のデータhp
)が110(馬力)以上で重さ(wt
)が3(1000lbs)以下のデータsum()
: 総和を計算するmean()
: 平均max()
: 最大値min()
: 最小値
関数 apply()
: 列または行ごとに計算を行う
apply(X, MARGIN, FUN) ## X: データフレーム ## MARGIN: 行(1)か列(2)かを指定 ## FUN: 求めたい統計量を計算するための関数
関数 aggregate()
: 各行をいくつかのグループにまとめて計算を行う
aggregate(x, by, FUN) ## x: データフレーム ## by: 各行が属するグループを指定するベクトルのリスト ## FUN: 求めたい統計量を計算するための関数
datasets::mtcars
のデータを以下の条件で整理しなさい
cyl
)ごとに排気量(disp
)の平均値,最大値,最小値gear
)ごとの燃費(mpg
)の平均値,最大値,最小値cyl
)とギア数(gear
)ごとの燃費(mpg
)の平均値