为什么R添加" x"重命名栅格堆栈图层时

时间:2016-04-25 15:09:17

标签: r rename raster r-raster

我在R中有一个包含84层的光栅堆栈/砖块,我试图根据199911到200610(1999年11月到2006年10月)的年份和月份命名它们。但是由于某些原因,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"

在某种程度上,我已经能够通过添加&#34; X&#34;来解决这个问题。到我的一些其他数据的开头,但现在它已达到我无法再这样做的地步。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:5)

R不允许该列以数字开头,因此它会在字符前加上一个字符以避免该限制。