我在做分析,其中必须为一大批分发者生成一组交叉表。数据处于客户级别,每个客户都映射到分销商。由于分销商的数量很大,我正试图自动化这一过程。在运行时在R中创建数据帧(动态)
我陷在基于发送者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
所需输出: 其通过Field1
,Field2
和由DiD=1234
错误时抛出包含主数据的子集的数据帧use_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
谢谢@Thomas,我会检查分配。另一个问题是动态创建数据框名称。任何关于可能出现问题的观点? –
@agstudy使用'assign'给了你一个很好的答案,这可能会解决你的问题。 – Thomas