是否可以“通过引用”为对象创建和分配名称?比如我有一个很大的data.frame,我需要对里面的一些列做一些基本的操作。我将需要做的列、分组和操作放在列表中:
exec_group_list = c("nbhd", "state", "use")
exec_var_list = c("land", "imp", "assmt", "landp", "impp", "assmtp")
exec_func_list = c("sum", "mean", "median", "max", "min", "sd")
因此,“land”列将按“nbhd”分组,然后对其应用“sum”、“mean”、“median”等。然后对“imp”列执行相同的操作,依此类推。然后我将重复相同的操作,但这次分组将由“状态”完成......冲洗,车床并重复,如下所示:
for (eachg in exec_group_list){
group_by_field = eachg
group_by = eval(parse(text=paste("sales$",group_by_field)))
group_by_lst = list(group_by)
print(paste("Grouping by:", eachg))
#CREATE DATA.FRAME FOR GROUP HERE
for (eachv in exec_var_list){
var = eval(parse(text=paste("sales$",eachv)))
print(paste("On column:", eachv))
for (eachf in exec_func_list){
print(paste("Calculating:", eachf))
tempt = (aggregate(var, group_by_lst, eachf))
colnames(tempt) = c(eachg, paste(eachv,".",eachf, sep=""))
print(tempt)
#APPEND COLUMNS TO GROUP DATA.FRAME
}
}
}
我想出了如何使用 eval() 使用列表中的引用,这样我就可以遍历分组列表和列列表,并使用列表中的值执行相同的操作。
但我想将信息存储在以分组字段命名的 data.frame 中。因此,例如,如果我按“nbhd”分组,我想创建一个名为“by_nbhd”的空 data.frame。
我尝试了类似的方法,eval(parse(text=paste("by_","nbhd", sep=""))) = data.frame("nbhd"=NA)
但出现错误。
任何人都知道这是否可能?任何帮助将不胜感激。先感谢您。