Ich versuche die "Where" -Funktion in R innerhalb einer Schleife zu verwenden, um basierend auf einem passenden Element eine bestimmte Zeile aus zwei Datasets auszuwählen und dann ein Streudiagramm der beiden erstellen. Das folgende Codebeispiel enthält die Zeilennamen der beiden Datenrahmen und die Schleife. Jedes Datenfeld enthält mehr Bezirke als in "Meine Konten" aufgeführt sind.R: Verwendung von "where" zum Auswählen von Zeilen durch Abgleichen eines Elements aus einer Liste
Ich habe die "Where" -Funktion in einer Schleife genau so verwendet, aber diesmal gibt R die Fehlermeldung zurück, dass "wo" nicht existiert? Ich weiß "wo" existiert! Meine Frage ist, wie kann ich diese "Wo" -Struktur erkennen, oder gibt es eine bessere Möglichkeit, die Zeilen auszuwählen, die ich plotten möchte? Vielen Dank!
> names(dts)
[1] "county" "Freq125" "Freq126" "Freq127" "Freq128" "Freq129" "Freq130" "Freq131" "Freq132" "Freq133" "Freq134" "Freq135" "Freq136" "Freq137"
[15] "Freq138" "Freq139" "Freq140" "Freq141" "Freq142" "Freq143" "Freq144" "Freq145" "Freq146" "Freq147" "Freq148" "Freq149" "Freq150" "Freq151"
[29] "Freq152" "Freq153" "Freq154" "Freq155" "Freq156" "Freq157" "Freq158" "Freq159" "Freq160" "Freq161" "Freq162" "Freq163" "Freq164" "Freq165"
[43] "Freq166" "Freq167" "Freq168" "Freq169" "Freq170" "Freq171"
> names(pm)
[1] "county" "pm125m" "pm126m" "pm127m" "pm128m" "pm129m" "pm130m" "pm131m" "pm132m" "pm133m" "pm134m" "pm135m" "pm136m" "pm137m" "pm138m"
[16] "pm139m" "pm140m" "pm141m" "pm142m" "pm143m" "pm144m" "pm145m" "pm146m" "pm147m" "pm148m" "pm149m" "pm150m" "pm151m" "pm152m" "pm153m"
[31] "pm154m" "pm155m" "pm156m" "pm157m" "pm158m" "pm159m" "pm160m" "pm161m" "pm162m" "pm163m" "pm164m" "pm165m" "pm166m" "pm167m" "pm168m"
[46] "pm169m" "pm170m" "pm171m"
>
> mycounties = c("beaufort", "bertie", "bladen", "camden", "carteret", "chowan", "craven",
+ "cumberland", "currituck", "dare", "duplin", "gates", "greene", "harnett", "hyde",
+ "jones", "lenoir", "new hanover", "onslow", "pamlico", "pasquotank", "pender", "perquimans", "pitt", "robeson", "sampson", "tyrrell", "washington")
>
> LOOP
> for (i in 1:length(mycounties)) {
+ x = pm[where(pm$county == mycounties[i]),2:48]
+ y = dt[where(dts$county == mycounties[i]),2:48 ]
+ plot(x, y, main=paste("HYSPLIT & ED Visits", counties[i], sep=""),
+ xlab="HYSPLIT", ylab="ED Visits", pch=19)
+ }
Error in `[.data.frame`(pm, where(pm$county == mycounties[i]), 2:48) :
could not find function "where"
Nein, "wo". Hier ist ein Beispiel einer Zeile, die ich zuvor in einer ähnlichen Schleife ausgeführt habe, die gut funktionierte: \t if (mat $ county [i]% in% list (dt5 $ county)) {mat [i, 2: 58] = dt5 [where (mat $ county [i] == dt5 $ county), 2:58]} – mEvans
Wenn Sie diese Zeile ausgeführt haben, muss entweder jemand die "where" -Funktion an anderer Stelle definiert haben, oder die Bedingung wurde nie ausgeführt (dh ' (mat $ county [i]% in% list (dt5 $ county)) 'war nie wahr.' wo' ist sicherlich keine eingebaute Funktion in R. 'was' ist. –
Interessant! Also, dass die vorherige Schleife ich verwendet haben muss habe falsche Ergebnisse erstellt ... Ich werde zurück gehen und es überprüfen müssen Danke! Sooooo ist es möglich, "which" in diesem Fall zu verwenden? Ich werde versuchen? welche – mEvans