Я пытаюсь запустить цикл for для взвешенного индекса Theil theil.wtd, но по какой-то причине результаты, которые я получаю, когда запускаю индекс для каждого года вручную, не равны тем, которые я получаю из цикла.
Это мой код для цикла:
Th <- expand.grid("Jahr" = c(2003:2015),
Theil = NA)
for(row.i in 1:nrow(Th)){
data.temp1 <- subset(df_Pop1[row.i]) #df_Pop1 is a df of 13 observations (years 2003:2015) and 1732 variables(NUTS3 regions)
data.temp2 <- subset(df_GDP1[row.i]) #same as df_Pop1 with values for GDP
Theil.i <- theil.wtd(data.temp1, weights = data.temp2)
Th$Theil[row.i] <- Theil.i
}
Вот что я получаю:
> Th
Jahr Theil
1 2003 0.000139943
2 2004 0.000305058
3 2005 0.000103980
4 2006 0.000120476
5 2007 0.000629088
6 2008 0.000011569
7 2009 0.000003321
8 2010 0.000028351
9 2011 0.000101787
10 2012 0.000059489
11 2013 0.000065403
12 2014 0.000211942
13 2015 0.000176955
Делая то же самое вручную ..
theil.wtd(df_Pop_1$`2003`, weights = df_GDP_1$`2003`) #df_Pop_1 is df of 1732 obs. (NUTS 3 regions) and 13 variables (years 2003:2015)
.. это результат:
[1] 1.22911
Мне известно о том, что я не использую точно один и тот же df для обоих вычислений, но поскольку df_Pop1 - это просто транспонирование df_Pop_1 и того жедля ВВП это не должно иметь значения (на самом деле я уже пробовал это и получил те же результаты).
Поиск «theil», «theil.wtd», «theil index» и «ineq» мне не очень помог.
Кто-нибудь знает, в чем может быть ошибка?
Большое спасибо заранее!