ワークスペースには、48個のデータフレームがあります。
zbp1994f, zbp1994m, zbp1994r
zbp1995f, zbp1995m, zbp1995r
......
zbp2009f, zbp2009m, zbp2009r
各フレームには、グループ変数(たとえば、グループ)があります。1つのデータフレーム、つまりzbp1994fについて、グループごとに統計(Moran's I)を計算します。
library(ape)
moranfn <- function(dta) {
distinv <- -1/as.matrix(dist(cbind(dta$longi, dta$lati)))
diag(distinv) <- 0
Moran_result <- data.frame(Moran.I(dta$myvariable, distinv))
}
library(plyr)
Moran_result_1994f <- ddply(zbp1994f,"group",moranfn)
これにより、グループごとの統計を含むMoran_result_1994fデータフレームが得られます。
group stat1 stat2 sd p-value
g1 0.049 -0.01 0.012 2.55e-06
g2 0.122 -0.05 0.041 2.45e-08
......
私の目標は、すべてのデータフレームに対して作業を行い、パネルデータセットを作成することです。
group year stat1 stat2 sd p-value
g1 1994 ..... ..... .. .....
g1 1995 ..... ..... .. .....
g1 1996 ..... ..... .. .....
......
g1 2009 ..... ..... .. .....
g2 1994 ..... ..... .. .....
......
最初の手順を1年(1994:2009)とc( "f"、 "m"、 "r")でループする方法を知りたいです。