在工作区中的一个数据帧,我有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'。 –