Ich versuche gerade Daten aus mehreren Datenrahmen (A1-A8
) auszulesen, die alle die gleiche Struktur haben, mit einer for-Schleife. Innerhalb der for-Schleife möchte ich Daten extrahieren, die eine bestimmte Bedingung (in diesem Fall eine bestimmte Tiefe) erfüllen. Ich habe das mit Teilmenge und wenn-sonst versucht. Das Problem, das mir bevorsteht, ist, dass, falls diese Bedingung nicht erfüllt ist, die for-Schleife unterbrochen wird und die folgenden Schritte nicht ausgeführt werden. Hier ist das Beispiel:Bedingte Datenextraktion aus mehreren Datenrahmen
Depth <- c(40,60,70,80,85,90)
D2H <- c(-60,-65,-63,-67,-58,-66)
A1 <- data.frame(Depth, D2H)
for (i in 1:8) {
Ax <- get((paste("A",i,sep="")))# reads in the dataframe
A_40[i] <- subset(Ax$D2H, Ax$Depth == 40) #writes the value of D2H at depth 40 into the new vector
A_60[i] <- subset(Ax$D2H, Ax$Depth == 60)
}
Wenn also zum Beispiel Datenrahmen A3
nicht Depth = 40
enthält, die für die Schleife unterbrochen wird. Wie kann ich dieses Problem überwinden? Falsche Vorgehensweise?
Ich hoffe, ich habe das Problem gut genug beschrieben, wenn nicht, lass es mich wissen und ich werde die Beschreibung erweitern. Ich bin sehr dankbar für Empfehlungen.
also erhalten Sie einen Fehler mit diesem Ansatz? Sie können versuchen, die 'which()' zu verwenden, um die Zeilen zu finden, die die Bedingungen erfüllen, und dann die Anzahl der zufriedenstellenden Zeilen mit 'length()' zu überprüfen. Nur wenn die Länge größer als 'Null' ist, versuchen Sie die 'subset()'. – TUSHAr