【发布时间】:2013-07-04 14:56:14
【问题描述】:
我正在进行分析,其中必须为大量分销商生成一组交叉表。数据位于客户级别,每个客户都映射到分销商。由于分销商的数量很大,我正在尝试使流程自动化。
我陷入了基于分销商 ID 动态创建数据帧的困境
这是我正在尝试的:
for (i in 1:length(DiD)){ #vector comprising list of distributors
paste("use",DiD[[1]],sep="_") <- subset(master table, Field1=="NA"& Field2=="valid" & Field3==as.character(DiD[[1]]))
}
其他信息:
DiD[[1]] = 1234
期望的输出:
一个数据框use_1234,其中包含Field1、Field2 和DiD=1234 的主数据子集
引发的错误:
粘贴部分也面临问题,将Field3 指定为DiD[[1]]
Error in eval(expr, envir, enclos) :
dims [product 1] do not match the length of object [529]
我希望我提供了足够的信息。非常感谢!
PS:如果问题已经在论坛中得到解答,我无法找到。
【问题讨论】:
-
你可能想看看
assign。此外,最好避免使用subset,而是使用[。 -
谢谢@Thomas,我会检查分配。另一个问题是动态创建数据框名称。对那里可能出现的问题有何看法?
-
@agstudy 使用
assign给了你一个很好的答案,这可能会解决你的问题。 -
我会尝试@agstudy,我会添加一些虚拟表以使问题更清晰。感谢您的建议。一旦我破解了这个,我也会添加一个答案
-
@RaamaVi 你应该阅读this to-make-a-great-r-reproducible-example.
标签: r dynamic for-loop dataframe