1
我正在创建数据源的多个子集,然后以几种不同的方式绘制图表并输出为pdf。我创建了一个for循环来创建一切并操作数据,但是当我尝试子集时,返回的数据集是空的。我创建了一个简单的示例,显示我在下面遇到的问题。列表清单上的筛选器数据表
有没有另外一种方法我应该考虑这个问题?
id <- c(rep("a",20),rep("c",10),rep("d",10),rep("e",20),rep("f",20),rep("g",20))
x <- rnorm(n=100, mean=1323, sd=6.432)
dt <- data.table(id, x)
class1 <- c("a","e","g")
class2 <- c("c","F")
class3 <- c("b","d")
classes <- list(class1,class2,class3)
dtNames <- c("c1","c2","c3")
#this doesn't work
for(i in 1:length(classes)){
assign(dtNames[i],dt[dt$id %in% classes[i],])
}
#this does work
assign(dtNames[1],dt[dt$id %in% class1])
最好不要在全局环境中创建多个对象 – akrun
最好是创建data.frames列表,而不是使用assign。查看@ gregor的帖子[这个问题](http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)了解如何创建和使用这些对象的提示。 – lmo