1

これは私の最初の投稿であり、会社 = 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  
4

1 に答える 1