在R中的情节循环

时间:2014-10-06 11:55:50

标签: arrays r loops if-statement plot

我有一个N C T

的数组

我希望为每一行绘制一个时间序列,acf和pacf(即对于数组中的每个N)

我可以在一个例子中做到这一点

par(mfrow=c(3,1))
x <- x_whole[N,C,(1:T)]
plot(x, t='l')
abline(h=mean(x), col='red')
acf(x, lag.max=T-10)
pacf(x, lag.max=T-10)

现在我希望创建一个为每个N

执行此操作的循环

其中一些N是0,如果是这种情况,我希望忽略/跳过这些

我正在使用R软件

我最大的努力是

for(i in 1:N){
        if(i != 0){
             par(mfrow=c(3,1))
            plot(x_whole[i,1,(1:T)], t='l')
        abline(h=mean(x_whole[i,1,(1:T)]), col='red')
        acf(x_whole[i,1,(1:T)], lag.max=190)
        pacf(x_whole[i,1,(1:T)], lag.max=190)

    }
    else{
        return 0 
        }
} 

数据看起来像

[,,1]
3.45    4    5    6    7
0       2    3    6    6
2.34    4    5    6    5

[,,2] 
4.56    4    5    6    7
4.43    2    3    6    6
0       4    5    6    5 

等。

我希望有一个3x1图,其中[1,1,(1:T)],[2,1,(1:T)] [3,1,(1:T)]的图是一个输出

同样重要的是要注意列3,4,5中的数据已排序

1 个答案:

答案 0 :(得分:0)

for(i in 1:length(N)){
  if(i==0)
    {return 0} else
      {par(mfrow=c(3,1))
        plot(x_whole[i,1,(1:T)], t='l')
    abline(h=mean(x_whole[i,1,(1:T)]), col='red')
    acf(x_whole[i,1,(1:T)], lag.max=190)
    pacf(x_whole[i,1,(1:T)], lag.max=190)}}

如果没有您的数据样本,我将无法再提供帮助。您能否以data<-c(...)data<-matrix(...,ncol=...,nrow=...)格式将其作为矢量/矩阵提供,谢谢:)