Как я могу построить повторяемость в 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