これは私の最初の投稿であり、会社 = obs のパネル データ (年 = 1998:2007) を使用して、会社の総生産量に対するハーフィンダールの測定値を計算する最初の関数を構築しようとして非常に行き詰まっています。年 (1998-2007) および地域 ("West"、"Central"、"East"、"NE") によって、関数を介して引数を渡す際に問題が発生しています。2 つのループ (時間用と地域用) を使用する必要があると思います。どんな助けでも役に立ちます.一度に1つずつハーフィンダール測定値を取得するために、データを400回以上サブセット化する必要はありません。前もって感謝します!
以下に提供します:1)私のスターターコード(1つの値のみを返します); 2) 目的の出力 (1) 年別および 2) 年地域別のヘフィンダール測定値を含む 2 ビン); 3) 元データ
1) 私のスターターコード
myherf<- function (x, time, region){
time = year # variable is defined in my data and includes c(1998:2007)
region = region # Variable is defined in my data, c("West", "Central","East","NE")
for (i in 1:length(time)) {
for (j in 1:length(region)) {
herf[i,j] <- x/sum(x)
herf[i,j] <- herf[i,j]^2
herf[i,j] <- sum(herf[i,j])^1/2
}
}
return(herf[i,j])
}
myherf(extractiveoutput$x, i, j)
herf[i, j] のエラー <- x/sum(x) : オブジェクト 'herf' が見つかりません
2) 私の望む結果は、次の 2 つのベクトルです。
A. (1x10 vector)
Year herfindahl(yr)
1998 x
1999 x
...
2007 x
B. (1x40 vector)
Year Region hefindahl(yr-region)
1998 West x
1998 Central x
1998 East x
1998 NE x
...
2007 West x
2007 Central x
2007 East x
2007 northeast x
3) 元データ
Obs. industry year region grossoutput
1 06 1998 Central 0.048804830
2 07 1998 Central 0.011222478
3 08 1998 Central 0.002851575
4 09 1998 Central 0.009515881
5 10 1998 Central 0.0067931
...
12 06 1999 Central 0.050861447
13 07 1999 Central 0.008421093
14 08 1999 Central 0.002034649
15 09 1999 Central 0.010651283
16 10 1999 Central 0.007766118
...
111 06 1998 East 0.036787413
112 07 1998 East 0.054958377
113 08 1998 East 0.007390260
114 09 1998 East 0.010766598
115 10 1998 East 0.015843418
...
436 31 2007 West 0.166044176
437 32 2007 West 0.400031011
438 33 2007 West 0.133472059
439 34 2007 West 0.043669662
440 45 2007 West 0.017904620