Ich erstelle mehrere Teilmengen einer Datenquelle, die dann auf verschiedene Arten grafisch dargestellt und in eine PDF ausgegeben wird. Ich habe eine for-Schleife erstellt, um alles zu erstellen und die Daten zu manipulieren. Wenn ich jedoch versuche, eine Teilmenge zu erzeugen, sind die zurückgegebenen Datensätze leer. Ich habe ein einfaches Beispiel erstellt, das das Problem zeigt, das ich unten habe.Filter Datentabelle in einer Liste von Listen
Gibt es eine andere Art, darüber nachzudenken?
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])
Es ist besser, nicht mehrere Objekte in der globalen Umgebung zu erstellen – akrun
Es ist besser, Listen von data.frames zu erstellen, anstatt assign zu verwenden. In @gregors Beitrag zu [dieser Frage] (http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames) finden Sie Tipps zum Erstellen und Arbeiten mit solchen Objekten. – lmo