読者です 読者をやめる 読者になる 読者になる

applyを使ってると、data.frameのカラム名を触れない

R

@y_benjoに教えてたりしたんだけど、applyだけではうまく解決できなかった。例えば、こんな時系列データがあったとして

a,b,c
100,10,50
111,20,56
98,10,58

このaとかbとかごとに時系列のplotをさせたい。

apply(d,2,plot)

とかやればいいんだけど、カラム名も一緒に出力させたい。というか、出力させないとどれplotしているのか分からない。で、mapplyも途中でかませたやつをやってみた。どうも妥協っぽい。うーん。。。

d <- read.csv("~/Downloads/dataset.csv",header=TRUE)
n <- names(d)
d <- as.matrix(d[,seq(ncol(d))])
names(d) <- NULL
par(ask=TRUE)
mapply(function(d,s){png(paste(n[s],".png",sep="");plot(d,type="l",main=n[s]);dev.off()},unlist(apply(d,2,list),recursive=FALSE),seq(length(d)))

そういえば同じようなことをid:ichanさんもtwitterで発言してらっしゃたなーということを思い出した。