次の例のように、時系列データを含むデータ フレームがあるとします。最初の列はインデックスで、残りの列はすべて異なるデータ ストリームを含み、わかりやすい名前が付けられています。
temps = data.frame(matrix(1:20,nrow=2,ncol=10))
names(temps) <- c("flr1_dirN_areaA","flr1_dirS_areaA","flr1_dirN_areaB","flr1_dirS_areaB","flr2_dirN_areaA","flr2_dirS_areaA","flr2_dirN_areaB","flr2_dirS_areaB","flr3_dirN_areaA","flr3_dirS_areaA")
temps$Index <- as.Date(2013,7,1:2)
temps
flr1_dirN_areaA flr1_dirS_areaA ... Index
1 1 3 ... 1975-07-15
2 2 4 ... 1975-07-16
今、ggplot2 でプロットするためにデータ フレームを準備したいとflr
思いdir
ますarea
。
この単純な例では、次のようにこれを実現できます。
temps.m <- melt(temps,"Index")
temps.m$flr <- factor(rep(1:3,c(8,8,4)))
temps.m$dir <- factor(rep(c("N","S"),each=2,len=20))
temps.m$area <- factor(rep(c("A","B"),each=4,len=20))
temps.m
Index variable value flr dir area
1 1975-07-15 flr1_dirN_areaA 1 1 N A
2 1975-07-16 flr1_dirN_areaA 2 1 N A
3 1975-07-15 flr1_dirS_areaA 3 1 S A
4 1975-07-16 flr1_dirS_areaA 4 1 S A
5 1975-07-15 flr1_dirN_areaB 5 1 N B
6 1975-07-16 flr1_dirN_areaB 6 1 N B
7 1975-07-15 flr1_dirS_areaB 7 1 S B
8 1975-07-16 flr1_dirS_areaB 8 1 S B
9 1975-07-15 flr2_dirN_areaA 9 2 N A
10 1975-07-16 flr2_dirN_areaA 10 2 N A
11 1975-07-15 flr2_dirS_areaA 11 2 S A
12 1975-07-16 flr2_dirS_areaA 12 2 S A
13 1975-07-15 flr2_dirN_areaB 13 2 N B
14 1975-07-16 flr2_dirN_areaB 14 2 N B
15 1975-07-15 flr2_dirS_areaB 15 2 S B
16 1975-07-16 flr2_dirS_areaB 16 2 S B
17 1975-07-15 flr3_dirN_areaA 17 3 N A
18 1975-07-16 flr3_dirN_areaA 18 3 N A
19 1975-07-15 flr3_dirS_areaA 19 3 S A
20 1975-07-16 flr3_dirS_areaA 20 3 S A
実際には、さまざまな長さのデータ ストリーム (列) があります。それぞれが独自のファイルから取得され、データが欠落しており、列 (ファイル) 名に 3 つ以上の要素がエンコードされているため、要素を適用するこの単純な方法ではうまくいきません。仕事。より堅牢なものが必要で、変数名をさまざまな因子に解析し、溶けたデータ フレームの因子列に入力する傾向があります。
私の最終目標は、次のようなものをプロットすることです。
ggplot(temps.m,aes(x=Index,y=value,color=area,linetype=dir))+geom_line()+facet_grid(flr~.)
reshape、reshape2、plyr、またはその他のパッケージを使用すると、1 つまたは 2 つのステートメントでこれを実行できると思いますが、melt/cast/ddply およびその他の部分に苦労しています。助言がありますか?
また、私のデータを構造化するためのまったく異なる [より良い] アプローチを提案できれば、私はすべて耳を傾けます。
前もって感謝します