Как получить разницу в значении между последующими наблюдениями (страны-годы)?

Допустим, у меня есть оценки по 5 странам за 10 лет, например:

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

Теперь я хотел бы создать новую переменную & quot; period & quot; это 1, если оценка следующего года +/- 0,5 отличается от оценки предыдущего года, и 0, если это не так. Я хотел бы сделать это для всех 5 стран. И было бы здорово, если бы можно было определить страну-годы, для которых период = 1, и отобразить эту информацию в таблице.

> 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

Я очень надеюсь, что это не слишком много, чтобы спросить. Я попробовал это сdist вlibrary(proxy) но я не знаю, как ограничить функцию парами наблюдения, а не полным рядом. Бесконечно благодарен!!

Ответы на вопрос(4)

Ваш ответ на вопрос