Если год - это просто числовое значение (вы получаете TRUE
, когда пишете is.numeric(data1[,'year'])
?) Для наблюдения, а не объект даты / времени, тогда это будет работать, не нужно ничего сложного!
# dummy data
data1 <- data.frame('year' = c(2007, 2008, 2008, 2009))
# solution
data1[,'elapsed'] <- data1[,'year'] - 2007
Выход:
year elapsed
1 2007 0
2 2008 1
3 2008 1
4 2009 2
Если это дата / время, тогда посмотрите на функцию difftime