忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

データファイルで個人ごとの代表値などをまとめる
tapply, by等も試したが、たぶんaggregate関数が一番便利

dat <- read.table("http://file.scratchhit.pazru.com/agdata.txt", header = T)
dat # データファイル。
summary(dat)

ag.dat <- aggregate(x=dat[5:6], by=list(dat[,1],dat[,2], dat[,3], dat[,4]), FUN=mean)
ag.dat # 個人別に条件ごとのrtの平均値をだす
## tapplyはINDEXの3番目からリスト要素になる。tapplyはデータに2列指定できない
tapply(X=dat[,5], INDEX=list(dat[,1], dat[,2], dat[,3],dat[,4]), FUN=mean)

# 分析しやすいようにreshapeパッケージのcast関数で横長にする
library(reshape)
pn <- substr(ag.dat[,2], 1, 3) # 横長データセットの変数名をつくるため、substrで一部をとりだす
hl <- substr(ag.dat[,3], 1, 1)
on <- substr(ag.dat[,4], 1, 1)
variable <- paste(pn, hl, on, sep = "_") # variableという変数名じゃないとcast関数ではエラー
value <- ag.dat$rt # valueという変数名じゃないとcast関数ではエラー
pid <- ag.dat$Group.1
ag.w <- cast(data.frame(pid, value, variable))
ag.w


PR
Comment
Trackback
Trackback URL

Comment form
Title
Color & Icon Vodafone絵文字 i-mode絵文字 Ezweb絵文字  
Comment
Name
Mail
URL
Password
プロフィール
HN:
tao
HP:
性別:
非公開
職業:
会社員
趣味:
アウトドア、自転車、ジョギング、英語学習
自己紹介:
・千葉在住のサラリーマンです。データ分析っぽいことが仕事。
・今年英検1級取得。今はTOEIC高得点を目指して勉強中。
・興味のあることは野球、アウトドア、英語学習、統計、プログラミング、PC関係などなど。
ブログ内検索
freead
順位表
プロ野球データFreak
セリーグ順位表
パリーグ順位表