2011-07-07 77 views
0

我有一个如下所示的时间序列(csv文件)数据。每个观察间隔为2秒的间隔:绘制多个时间序列数据

Group,Id, Observations (illustration only--csv file dont have headers) 
A,21,2,3,4 
B,12,2,9 
C,13,3,5 
A,14,4,6,7,9,12,3,4,5,6 
B,15,3,5,2,1,3 
C,16,8,67 
A,27,98,78 
B,18,2,3,4,5,6,7,8,1,2,3,4,5 
C,19,2,3,4,5,6,6,4,3,3,2,3,4,4,5,6,66,6,4,3,232 

每行是一个单独的时间序列数据。我试图将这些时间序列数据w.r.t组(A,B,C)与一些图(至少现在)进行比较和对比。

编辑: 我读为Import data into R with an unknown number of columns?建议的CSV文件,该文件会读这个CSV作为

 
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 
    A 21 2 3 4 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
    B 12 2 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
         --------------------------- 
    C 19 2 3 4 5 6 6 4 3 3 2 3 4 4 5 6 66 6 4 3 232 

我试着用ggplot绘制该数据由熔化的数据与

melt(data,c("X1","X2"))
这给我造成

 
    X1 X2 variable value 
1 A 21  X3  2 
2 B 12  X3  2 
3 C 13  X3  3 
4 A 14  X3  4 
5 B 15  X3  3 
6 C 16  X3  8 
7 A 27  X3 98 
8 B 18  X3  2 
9 C 19  X3  2 
10 A 21  X4  3 
11 B 12  X4  9 
12 C 13  X4  5 
13 A 14  X4  6 
14 B 15  X4  5 
15 C 16  X4 67 
---------------------- 

X3,X4,X5..X22是一段时间的观察。 我想通过独立绘制每个观察结果(或者说为每个观察结果创建时间序列)来比较不同的数据组(A,B,C)。
我无法找出动物园包装绘图解决方案。我想知道如何为这种类型的时间序列数据生成这样的情节?

+0

看来,你比A具有对C组更多的数据点和B如何额外的数据点,线爱上其他两组?第二B行与第一行相比如何?它们是否应该组合成一个连续的时间序列? '熔化(数据,......')的结果是什么?你可以在读入数据后提供'输入(数据)'吗? – Chase

+0

以上只是一个例子,不同的观察组数不同,我不能合并作为观察的组(A,B或C)是独立的,属于不同的组和不同的ID,并且我有兴趣分别观察每个组的行为 – iinception

+0

那么这里的列x2是什么?这就像一个主题ID,所以你有多个A,B和C组内的主题?当您在评论中对下面的答案说“A组将对属于A组的所有时间序列观察值进行分组”时,您原始数据框的每一行都是您想要的单独观察值一行? – nzcoops

回答

2

试试这个:

Lines <- "A,21,2,3,4 
B,12,2,9 
C,13,3,5 
A,14,4,6,7,9,12,3,4,5,6 
B,15,3,5,2,1,3 
C,16,8,67 
A,27,98,78 
B,18,2,3,4,5,6,7,8,1,2,3,4,5 
C,19,2,3,4,5,6,6,4,3,3,2,3,4,4,5,6,66,6,4,3,232" 

library(zoo) 
k <- max(count.fields(textConnection(Lines), sep = ",")) 
DF <- read.table(textConnection(Lines), sep = ",", fill = TRUE, col.names = 1:k, 
    as.is = TRUE) 

# next line may not be needed but won't hurt 
DF[[1]] <- gsub(" ", "", DF[[1]]) 

z <- zooreg(t(DF[-1]), start = 0, deltat = 2) 

plot(z, screen = DF[[1]]) 
+0

感谢您的答案...这不是我正在寻找。基本上我想要三个不同的面板说小组A,小组B,小组C.小组A将所有属于小组A的时间序列观察归入小组B,然后将小组B等所有时间序列观察归入小组B。我有兴趣了解这些小组如何区分彼此。此外,上面的动物园脚本读取这种csv文件(具有可变长度的列)不正确(第一列(这是组))被扰乱。) – iinception

+0

好吧,现在输入部分已更正,并根据你澄清你想要什么,以便它现在生产3个面板。 –

+0

谢谢..这就是我一直在寻找:) – iinception