2016-04-25 8 views
1

Ich habe einen Rasterstack/Baustein in R mit 84 Layern und ich versuche, sie nach Jahr und Monat von 199911 bis 200610 zu benennen (November 1999 bis Oktober 2006)). Aber aus irgendeinem Grund fügt R ein "X" am Anfang aller Namen hinzu, die ich meinen Layern gebe.Warum fügt R beim Umbenennen von Raster - Stack - Layern ein "x" hinzu?

Weiß jemand, warum das passiert und wie man es beheben kann? Hier sind einige der Möglichkeiten, die ich habe versucht:

# Import raster brick 

rast <- brick("rast.tif") 

names(rast)[1:3] 

[1] "MonthlyRainfall.1" "MonthlyRainfall.2" "MonthlyRainfall.3" 

## Method 1 

names(rast) <- paste0(rep(1999:2006, each=12), 1:12)[11:94] 
names(rast)[1:3] 

[1] "X199911" "X199912" "X20001" 

## Method 2 

# Create a vector of dates 

dates <- format(seq(as.Date('1999/11/1'), as.Date('2006/10/1'), by='month'), '%Y%m') 
dates[1:3] 

[1] "199911" "199912" "200001" 

# Set names 

rast <- setNames(rast, dates) 
names(rast)[1:3] 

[1] "X199911" "X199912" "X200001" 

## Method 3 

names(rast) <- paste0("", dates) 
names(rast)[1:3] 

[1] "X199911" "X199912" "X200001" 

## Method 4 

substr(names(rast), 2, 7)[1:3] 

[1] "199911" "199912" "200001" 

names(rast) <- substr(names(rast), 2, 7) 
names(rast)[1:3] 

[1] "X199911" "X199912" "X200001" 

Zu einem gewissen Grad ich in der Lage gewesen, um das Problem zu umgehen, indem Sie „X“ zu Beginn einige meiner anderen Daten hinzufügen, aber seine jetzt den Punkt erreicht, wo ich das nicht mehr machen kann. Jede Hilfe würde sehr geschätzt werden!

+0

Lesen Sie die Dokumentation unter '? Make.names'. – joran

Antwort

5

R wird nicht zulassen, dass die Spalte mit einer Ziffer beginnt, daher wird ein Zeichen vorangestellt, um diese Einschränkung zu vermeiden.

+0

Danke! Ich habe es bearbeitet, also gibt es eine Lösung in der Frage und akzeptierte sie. – James