我目前有一个约 83000 行(13 列)的数据框,其中包含 2000-2012 年的犯罪数据,每一行都是犯罪并报告了邮政编码(因此邮政编码 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 studio,我显示的数据列表很长,它显着减慢了程序的速度)。以下是我为所有邮政编码分配全局变量的方式:
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 循环中,我将已经存在的变量重新分配给完全相同的东西,浪费处理时间。我可以添加任何快速行来加快速度吗?
在此先感谢您的帮助!