2016-04-25 9 views
1

У меня есть растровый стек/кирпич в R, содержащий 84 слоя, и я пытаюсь назвать их в соответствии с годом и месяцем с 1999 по 2007 год (с ноября 1999 года по октябрь 2006 года)). Однако по какой-то причине R продолжает добавлять «X» в начало любых имен, которые я даю своим слоям.Почему R добавляет «x» при переименовании слоев растрового стека

Кто-нибудь знает, почему это происходит и как его исправить? Вот некоторые из способов, которые я пробовал:

# 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" 

В какой-то степени я был в состоянии обойти эту проблему путем добавления «X» в начале некоторых из моих других данных, но теперь его достиг точки где я больше не могу этого делать. Любая помощь будет принята с благодарностью!

+0

Прочитайте документацию на '? Make.names'. – joran

ответ

5

R не позволит колонке начинать с цифры, поэтому она добавляет символ, чтобы избежать этого ограничения.

+0

Спасибо! Я отредактировал так, что есть решение в вопросе и принял его. – James