【发布时间】:2016-08-03 15:12:52
【问题描述】:
如何在 R 中绘制循环。 欢迎使用任何带有基本图、ggplot2、lattice 或专用包的解决方案。
例如:
想象一下我有这些数据:
mydata <- data.frame(t=1:10, Y=runif(10))
t Y
1 0.3744869
2 0.6314202
3 0.3900789
4 0.6896278
5 0.6894134
6 0.5549006
7 0.4296244
8 0.4527201
9 0.3064433
10 0.5783539
我可以这样改造它:
mydata2 <- data.frame(t=c(NA,mydata$t),Y=c(NA,mydata$Y),Y2=c(mydata$Y, NA))
t Y Y2
NA NA 0.9103703
1 0.9103703 0.1426041
2 0.1426041 0.4150476
3 0.4150476 0.2109258
4 0.2109258 0.4287504
5 0.4287504 0.1326900
6 0.1326900 0.4600964
7 0.4600964 0.9429571
8 0.9429571 0.7619739
9 0.7619739 0.9329098
10 0.9329098 NA
(或类似的方法,但我可能会遇到丢失数据的问题) 并绘制它
plot(Y2~Y, data=mydata2)
我想我必须使用一些分组功能,例如 ave 或 apply。但这不是一个优雅的解决方案,如果我有更多列,则很难概括转换。
例如
mydata3 <- data.frame(x=sample(10,100, replace=T),t=1:100, Y=2*runif(100)+1)
对于每个 x(或其他列上的值组合),我想在同一个图上绘制 Y_{i+1} ~ Y_i,。
其他工具,例如 Mathematica 具有直接绘制序列的功能。
【问题讨论】:
-
您在寻找
lag函数吗? -
滞后是我手动完成的,但正如我所说,我正在寻找更直接的东西,即使有更多的列(按组)也可以工作。并且缺失值不会产生预期的结果。
标签: r plot recurrence