Jak uzyskać różnicę wartości między kolejnymi obserwacjami (lata krajowe)?

Powiedzmy, że mam wyniki dla 5 krajów w okresie 10 lat, takie jak:

mydata<-1:3
mydata<-expand.grid(
country=c('A', 'B', 'C', 'D', 'E'),
year=c('1980','1981','1982','1983','1984','1985','1986','1987','1988','1989'))
mydata$score=sapply(runif(50,0,2), function(x) {round(x,4)})

library(reshape)
mydata<-reshape(mydata, v.names="score", idvar="year", timevar="country", direction="wide")

> head(mydata)
   year score.A score.B score.C score.D score.E
1  1980  1.0538  1.6921  1.3165  1.7434  1.9687
6  1981  1.4773  1.6479  0.3135  0.6172  0.7704
11 1982  0.8748  1.3704  0.2788  1.6306  1.7237
16 1983  1.1224  1.1340  1.7684  1.3352  0.4317
21 1984  1.5496  1.8706  1.4641  0.5313  0.8590
26 1985  1.7715  1.8953  0.6230  0.3580  1.6313

Chciałbym teraz utworzyć nową zmienną „kropka”, która wynosi 1, jeśli wynik kolejnego roku wynosi +/- 0,5 różny od wyniku z poprzedniego roku i wynosi 0, jeśli nie jest to prawdą. Chciałbym to zrobić dla wszystkich 5 krajów. Byłoby wspaniale, gdyby można było zidentyfikować lata krajowe, dla których okres = 1 i wyświetlić te informacje w tabeli.

> head(mydata)
   year score.A score.B score.C score.D score.E  period.A  period.B ...
1  1980  1.0538  1.6921  1.3165  1.7434  1.9687   NA         NA
6  1981  1.4773  1.6479  0.3135  0.6172  0.7704   0          ....
11 1982  0.8748  1.3704  0.2788  1.6306  1.7237   1
16 1983  1.1224  1.1340  1.7684  1.3352  0.4317   0
21 1984  1.5496  1.8706  1.4641  0.5313  0.8590   0
26 1985  1.7715  1.8953  0.6230  0.3580  1.6313   0

Mam wielką nadzieję, że nie jest to zbyt wiele. Próbowałem tegodist wlibrary(proxy) ale nie wiem, jak ograniczyć funkcję do par obserwacji, a nie do pełnego wiersza. Stukrotne dzięki!!

questionAnswers(4)

yourAnswerToTheQuestion