Как мога да начертая повторяемост в R. Всяко решение с базов график, ggplot2, решетка или специален пакет е добре дошло.
Например:
Представете си, че имам тези данни:
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
? - person cory   schedule 12.04.2016