zu plotten Ich versuche, eine doppelte for
Schleife zu schreiben, um zwei Ausgänge in Folge zu plotten.For-Schleifen, um zwei Ausgänge in Folge in R
Basierend auf den beiden folgenden Vektoren:
vec.a <- c("a1", "a2", "a3")
vec.b <- c("b1", "b2", "b3")
habe ich versucht, die erste Schleife:
for (i in vec.a){
cat(i)
for (j in vec.b){
cat(j, "| ")
}
}
Und die Ausgabe war:
a1b1 | b2 | b3 | a2b1 | b2 | b3 | a3b1 | b2 | b3 |
habe ich versucht, eine zweite Schleife :
for (i in vec.a){
for (j in vec.b){
cat(i)
cat(j, "| ")
}
}
Und der Ausgang war:
a1b1 | a1b2 | a1b3 | a2b1 | a2b2 | a2b3 | a3b1 | a3b2 | a3b3 |
Aber der Ausgang gewünscht ist:
a1b1 | a2b2 | a3b3
Wie dies zu tun?
Update:
Ich möchte die Grafiken zwischen den Spalten in der gleichen Position der beiden Datenrahmen vergleichen. Aber die gezeigte Sequenz ist nicht die, die ich begehre. Ich denke, dass die Logik die gleiche wie im obigen Beispiel ist.
set.seed(99)
df.a <- matrix(rnorm(50), 10, 10, # 10 rows and 10 columns
dimnames=list(paste("p", 1:10, sep = ""),
paste("sp.A", 1:10, sep = "")))
df.b <- matrix(rnorm(50), 20, 10, # 20 rows and 10 columns
dimnames=list(paste("p", 1:20, sep = ""),
paste("sp.B", 1:10, sep = "")))
die Grafik zu vergleichen, ich etwas wie folgt verwendet:
par(mfrow = c(1,2))
invisible(lapply(colnames(df.a[ ,1:ncol(df.a)]), function(x){
invisible(lapply(colnames(df.b[ ,1:ncol(df.b)]), function(w){
plot(df.a[ ,x], main = x)
plot(df.b[ ,w], main = w)
}))
}))
Wie die erste Spalte der mit der ersten Spalte der df.b
gepaart df.a
zu zeichnen, und so weiter?
Bitte meine Antwort aktualisiert sehen. Sie werden jedoch die gleiche Anzahl von Zeilen in den beiden Matrizen benötigen, andernfalls wird plot() versuchen, zwei Vektoren ungleicher Länge zu zeichnen (try plot (1:10, 1:20))! – srao
Ah, ich denke, ich verstehe was du meinst, ignoriere den obigen Kommentar. Ich werde meine Antwort reparieren. – srao