2017-11-15 3 views
1

Low-Level-R-Benutzer hier.R: mit gsub in einer for-Schleife

Ich habe 3 population Daten Frames (low.proj, med.proj, high.proj) mit der genau gleichen Anzahl von Zeilen und Spalten Ich versuche zu reinigen und neu zu gestalten.

Ich möchte einige zusätzliche Kommas im Land Spalte beseitigen alle drei der Rahmen so bin ich diese Schleife mit gsub versuchen:

Als ich das laufen bekomme ich die Fehlermeldung „Fehler in i [ , "Land"]: falsche Anzahl von Dimensionen“

Wenn ich den Code ohne die Schleife ausgeführt:

low.proj$Country <- gsub(",","",low.proj[,"Country"]) 

Es funktioniert. Was verursacht diesen Fehler und wie behebe ich ihn?

Antwort

0

Um den Inhalt des Objekts mit der Zeichenfolge in i Verwendung get() enthalten abzurufen neue Daten in diesem Objekt Gebrauch zu setzen assign

for(i in c("low.proj", "med.proj", "high.proj")){ 
    tmp <- get(i) 
    tmp$Country <- gsub(",","",tmp[,"Country"]) 
    assign(i, tmp) 
} 
+0

Das hat funktioniert! Danke für die Erklärung. – Oct

0

Sie indizieren die falsche Variable:

i$Country <- gsub(",","",i[,"Country"]) 

i ein String ist, so i$Country keine Bedeutung hat.

+1

Dies wird durch zeigt verbessert werden könnte, was richtig wäre, anstatt zu tun nur auflisten, was falsch ist. – leeum

+0

Sie haben Recht, Entschuldigung. – thc