Siehe ein Beispiel der Datei unten. Die Datei scheint in einem ArcGIS ascii-Format zu sein, liest aber alle Nullen, wenn Sie sie als Raster in ArcGIS oder R importieren. Ich möchte jede Textklasse (insgesamt 16) in numerische Form konvertieren, während nodata als beibehalten wird -9999. Die Datei ist 15 mb. Jede Hilfe wird geschätzt.Ich habe ein Raster (ASCII-Format) mit Textwerten. Wie konvertiere ich es in numerische Werte in R oder ArcGIS?
cols 1520
nrows 1550
xllcorner 7517937,93364
YLLCORNER -3.188.304,43924
Zellengröße 25
NODATA_VALUE -9999
"-9999" "SE" "SW" "N" "N"
„- 9999" "-9999" "N" "SE" "N"
"-9999" "-9999" "N" "SW" "N"
Vielen Dank. Das funktioniert fast, aber es ersetzt bestimmte Muster in den Daten falsch. Zum Beispiel, wenn die Zeile: "N" NNE "NNW" S "-9999" sollte "4" "7" "-9999" lesen, sondern stattdessen etwas wie "4441" "4414" lesen "9" "-9999" Gibt es eine Möglichkeit, genaue Übereinstimmungen anzugeben, so dass "N" nur N ersetzt und nicht das N in NNE? Oder muss ich vielleicht das Trennzeichen angeben, wenn die Datei eingelesen wird? –
Ok und nochmals danke @RobertH, ich habe dies behoben, indem ich festlege, dass die gesuchte Textzeichenfolge jedes Wort beginnen/beenden muss: x <-gbsub ("\\ bN \\ b", 0, x). Das einzige Problem ist jetzt, dass es immer noch jedes "Wort" als Textzeichenfolge speichert und nicht zu numerisch wird. Die Ausgabe ist also: "-9999" 4 "2" "1" "1" anstatt einfach -9999 4 2 1 1. –