我正在尝试为加权Theil索引theil.wtd运行一个for循环,但是由于某些原因,我每年手动运行该索引时得到的结果与从循环中获得的结果不相等。
这是我的循环代码:
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的换位而GDP df的换位也没关系(事实上,我已经尝试过了得到了相同的结果)。
搜索“ theil”,“ theil.wtd”,“ theil索引”和“ ineq”并没有真正帮助我。
有人知道什么可能是错误吗?
非常感谢您!