2016-04-25 8 views
1

Rで84個のレイヤを含むラスタスタック/レンガがあり、199911から200610までの年と月に従って名前を付けようとしています)。しかし、何らかの理由で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

関連する問題