R:将不同长度的矢量转换为固定的时间间隔

时间:2014-04-02 10:22:56

标签: r

我正在处理2个不同长度 105,102的向量。称他们为y1,y2

尽管它们的长度不同,但每个向量代表30秒内发生的活动。

假设所有向量的第一个元素在时间= 0秒开始,我能够使用以下代码将它们绘制出来:

y1 <- plot(seq(0,100,length = 105), rnorm(length(seq(0,100,length = 105))), type = "l")
y2 <- plot(seq(0,100,length = 102), rnorm(length(seq(0,100,length = 102))), type = "l")
l <- length(y1)
x <- seq(0,l,length= l)
y <- y1
plot(x, y, type = "l", xlab = "time", ylab = "bla")


l <- length(y2)
x <- seq(0,l,length= l)
y <- y2
lines(x,y, type = "l")

现在上面的代码将生成一个x轴范围为$(0,105)$的图形。但是,我希望x轴显示$(0,30)$秒。

我知道主要的问题是这两个向量的长度不同,但我想要沿着0到30美元的时间间隔分割每个向量的元素。

我该如何处理?

1 个答案:

答案 0 :(得分:2)

我认为OP只是希望在30秒的时间间隔内均匀分布每个y向量并绘制相同的图。在这种情况下,以下应该做的伎俩。基本上,对于xplot函数的lines参数,我们需要提供向量,其中元素的数量等于y对应参数中元素的数量,从0到30.

set.seed(1234)
y1 <- rnorm(length(seq(0,100,length = 105)))
y2 <- rnorm(length(seq(0,100,length = 102)))
plot((30/length(y1))*seq_along(y1), y1, type = 'l',col='red', xlab='time', ylab='y')
lines((30/length(y2))*seq_along(y2), y2, col='green')

给出了

enter image description here