1

現在、2000年から2012年の犯罪のデータを含む〜83000行(13列)のデータフレームがあり、各行は犯罪であり、郵便番号が報告されています(したがって、郵便番号xxxxxは2001年、2003年に見つかります、例として 2007 年)。

これが私のデータの例です:

 Year Quarter   Zip MissingZip BusCode LossCode NumTheftsPQ  DUL 
 2000       1 99502          1       3        5           2 9479           
 2009       2 99502          2       3        4           3 3220
 2000       1 11111          1       3        5           2 3479           
 2004       2 11111          2       3        4           3 1020

現在、すべての郵便番号にグローバル変数を割り当てることができます (私は R スタジオを使用していますが、表示されるデータのリストが非常に長く、プログラムの速度が大幅に低下しています)。すべての郵便番号にグローバル変数を割り当てる方法は次のとおりです。

   for (n in all.data$Zip) {
     x <- subset(all.data, n == all.data$Zip) #subsets the data
     u <- x[1,3] #gets the zip code value
     assign(paste0("Zip", u), x, envir = .GlobalEnv)  #assigns it to a global environment
     #need something here, MasterList <<- ?

}  

これらすべての変数をリストに含めたいと思います。たとえば、すべての郵便番号変数がリスト「MasterList」に格納されている場合:

   MasterList["Zip11111"]

データフレームが得られます:

 Year Quarter   Zip MissingZip BusCode LossCode NumTheftsPQ  DUL 
 2000       1 11111          1       3        5           2 3479           
 2004       2 11111          2       3        4           3 1020

これは可能ですか?そのようなことを行うための代替/高速/より良い方法は何ですか? これらの変数をリストに格納する方が効率的であることを期待していました。

ボーナス ポイント: for ループで、既に存在する変数をまったく同じものに再割り当てし、処理時間を浪費していることを知っています。これをスピードアップするために追加できる簡単な行はありますか?

よろしくお願いします。

4

3 に答える 3