Angenommen, ich habe mehrere Daten und möchte sie jeweils unterteilen.Objekt nicht gefunden Fehler beim Subsetting mit r
n = c(1, 1, 1)
s = c(55, 56, 57)
q = c(99, 100, 101)
df_1 = data.frame(n, s, q)
df_2 = data.frame(n, s, q)
df_3 = data.frame(n, s, q) # assume they are the same.
n s q
1 1 55 99
2 1 56 100
3 1 57 101
Dann erstelle ich eine Schleife um die Datei zu nennen,
for (h in 1:3){ # for loop the file
for (i in 1:1){ # i is for different values in column 'n'
Result <- paste('ResultFile_',h,sep="")
input <- paste('df_',h,sep="")
Result <- subset(input,subset=n==i)[,c(2,3)]
DO SOMETHING HERE....
}
}
Ich gehe davon aus, dass, wenn Spalte ‚n‘ gleich 1 ist, werde ich Spalte S erhalten und Q. Es 3 Ergebnisdateien erzeugen wird mir.
Aber es kommt mit Fehlermeldung.
Error in subset.default(input, subset = n == i) : object 'n' not found
Als ich 'Input' als 'DF1' in dieser Zeile subset(input,subset=n==i)[,c(2,3)]
, dann kann es funktionieren direkt ersetzen.
Warum ??
In Ihrem Beispiel ist 'input' eine Zeichenkette, die Sie mit' paste() 'erstellen (mit' class (input) 'überprüfen). 'subset' muss Sie in einem data.frame übergeben. Wenn Sie eine Reihe von Variablen namens 'df_1',' df_2', 'df_3' haben, ist das normalerweise ein Zeichen, dass Sie in R" falsch liegen ". Ihre data.frames sollten in einer Liste sein, um dies zu erleichtern. Siehe diese Frage für bessere Lösungen: http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames – MrFlick