2011-02-28 9 views
1

マップファイルの最後の質問をお待ちしています。レベル1以上のマップファイルのspChFIDs()

なぜこれが機能しないのですか。私はその権利をどのようにして行いますか?

load(url('http://gadm.org/data/rda/CUB_adm1.RData')) 
CUB <- gadm 
CUB <- spChFIDs(CUB, paste("CUB", rownames(CUB), sep = "_")) 

ありがとうございます!

(row.namesで動作するようです)

load(url('http://gadm.org/data/rda/CUB_adm1.RData')) 
CUB <- gadm 
CUB <- spChFIDs(CUB, paste("CUB", row.names(CUB), sep = "_")) 

答えて

2

1は?row.names()?rownames()のヘルプを読み取ったら、答えは明らかです。

ので、それがrownames()を見つけることができます行名を持っていない、rownames()関数は、マトリックスのようなオブジェクトについて何かを知っている、とCUBはそれらの一つではありません。

> rownames(CUB) 
NULL 

row.names()はそれは、異なっていますS3ジェネリック関数です。つまり、パッケージ作成者は、オブジェクトの行名を抽出できるように、特定のタイプのオブジェクトのメソッドを記述できます。ここで

はロードspパッケージで、私の現在のセッションでrow.names()ために利用可能なメソッドのリストです:

> methods(row.names) 
[1] row.names.data.frame    
[2] row.names.default     
[3] row.names.SpatialGrid*    
[4] row.names.SpatialGridDataFrame*  
[5] row.names.SpatialLines*    
[6] row.names.SpatialLinesDataFrame* 
[7] row.names.SpatialPixels*   
[8] row.names.SpatialPoints*   
[9] row.names.SpatialPointsDataFrame* 
[10] row.names.SpatialPolygons*   
[11] row.names.SpatialPolygonsDataFrame* 

    Non-visible functions are asterisked 

オブジェクトCUBのクラスがある:

> class(CUB) 
[1] "SpatialPolygonsDataFrame" 
attr(,"package") 
[1] "sp" 

だから何をされます関数row.names()SpatialPolygonsDataFrameメソッドが使用されており、必要な行名を見つける場所がわかっています。

+0

ありがとうございます!それはそれを説明しています:) – speendo

+0

ところで、私の間違いを訂正してくれてありがとう! – speendo

+0

@マルセルの問題はありません。答えがうれしかったのでうれしい。 –