【发布时间】:2014-10-06 11:55:50
【问题描述】:
我有一个数组 NCT
我希望为每一行(即数组中的每个 N)绘制一个时间序列、acf 和 pacf
我可以在一个例子中做到这一点
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 列中的数据已排序
【问题讨论】:
-
你能提供一个你的数组是什么样子的例子吗(例如使用
dput)?你之前的努力有什么问题?相反,您期望什么输出?我也很难理解你所说的“一些 N 是 0”是什么意思。 -
正如 SimonG 所说,您能否提供一小部分数据集(dput)或类似于您的假数据集?首先,您可以通过将 a=x_whole[i,1,(1:T)] 放在循环的开头并在其余部分替换它来简化您的代码。其次,如果您从 1:N 开始,N 怎么可能为零?也许您的意思是 a 中的 0(其中 all() 函数很方便)?第三,跳过循环检查“下一步”的一部分。
标签: arrays r loops if-statement plot