我想在同一个图中绘制多个时间序列变量,以便可以看到时间序列滞后如何排列。我将为不同的数据组绘制几个不同的图,每个图将代表不同的数据组,尽管每个图都有同名的变量。
我可以一个一个地做,一次一个变量,但是我有一百个变量。
以下是我的数据集示例,其中lag
是滞后点(来自ccf()
),每个var
是该滞后点处不同变量的ACF。
sampledf <- data.frame(
lag = -10:10,
var1 = rnorm(21),
var2 = rnorm(21),
var3 = rnorm(21)
)
现在我可以很容易地把它们画成这样:
plot(sampledf$lag,
sampledf$var1,
type = "l",
col = 1,
xlab = "Lag",
ylab = "ACF")
lines(sampledf$lag,
sampledf$var2,
type = "l",
col = 2)
lines(sampledf$lag,
sampledf$var3,
type = "l",
col = 3)
legend("topright",
c("Var1", "Var2", "Var3"),
lty = 1,
col = 1:3)
但是我需要手动计算每个变量,如果我想用不同的方式来查看相关性,例如,从sampledf1
、sampledf2
到sampledf20
,用var1
绘制一个图,我就必须从头开始。
有没有一种方法可以用更少的代码行来自动化这一点?这超出了我的R编程水平,但我意识到这可能与函数和其他东西有关(R在我的工作中主要是一个“统计”工具)。
如果有一种完全不同(但更简单)的方法来实现这一点,我也愿意使用不同的函数来以不同的方式查看交叉相关性。
1条答案
按热度按时间tjjdgumg1#
您可能很快就会用完所有颜色,但您可以执行以下操作:
碱基R
ggplot2
这在“长”格式中效果更好。