У меня есть некоторые данные панели. Для этих данных я хочу рассчитать разницу на каждый год для каждой группы, если у группы были наблюдения в оба года.Вычисление разницы в вычислениях
Вот данные:
> head(statistics)
persnr year NOBS value
1: 61961225 1993 1 0.5777598
2: 62037645 1993 1 0.5777598
3: 62181514 1993 1 0.5777598
4: 62499451 1993 1 0.5777598
5: 62649247 1993 1 0.5777598
6: 62744472 1993 1 0.5777598
Где persnr
является GroupID для панели. И мой нынешний подход был что-то вдоль линий
dataTable = data.table(cast(statistics, persnr ~ year, value='totalWage'))
# y is the second year. Iterate over that
for (y in tail(unique(statistics[, jahr]), n=-1)):
# get the first year
x <- y - 1
dataTable[!is.na(`x`) & !is.na(`y`), `y`-`x`]
}
Однако, я не могу использовать схему \
x`` для доступа столбцов. Каким был бы «R-ish» способ решения этого?
Вы не используете 'order' в' data.table'. Либо используйте 'setkey' или' setorder' –
@DavidArenburg, вы можете, когда вы не хотите изменять порядок исходной таблицы данных. – Arun