在工作區中的一個數據幀,我有48個數據幀:與數據處理幀:收集結果存入中的R
zbp1994f, zbp1994m, zbp1994r
zbp1995f, zbp1995m, zbp1995r
......
zbp2009f, zbp2009m, zbp2009r
在各幀中,有一組變量(比如說,基團)。我按組計算統計(莫蘭的我)只是一個數據幀,即zbp1994f:
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 ..... ..... .. .....
......
我不知道如何循環的初始程序在過去一年(1994年:2009)和c(「f」,「m」,「r」)。
創建一個數據框'list(1994 = list(f = zpb1994f,m = zbp1994m,r = zpb1994r),1995 = list(f = ...))'等的嵌套列表,然後使用'reshape2'將其解開, 'id.var = names(zpb1994f)' – mnel
我會做'ls(pattern =「zbp」)',然後在該列表對象上執行'ldply'。 –