2016-11-22 3 views
-4

.dbfファイルの最初の列の名前を指定せずにシェイプファイルでサブセット化を実行したいと思います。 より正確には、.dbfの最初の列に値1の行をすべて選択したいと思いますが、この列の名前は指定しません。シェープファイル内のデータをサブセット化できません

私は(COLUMNNAMEなど)列の名前を指定するため、例えば、このスクリプトの動作

library(rgdal) # readOGR 

shapeIn <- readOGR(nomeFile) 
shapeOut <- subset(shapeIn, columnName == 1) 

代わりに、それは

shapeOut <- (shapeIn[,1] == 1) 

に動作しないと、私はエラーメッセージを取得: 比較を(1)はアトミックおよびリストの型に対してのみ可能です。shapeOutおよびshapeInはESRIベクトルファイルです。あなたが私を助けることができる

これは私のshapeIn

coordinates mask_1000_ 
1 (54000, 1218000)   0 
2 (55000, 1218000)   0 
3 (56000, 1218000)   0 

のヘッダのですか? SpatialPolygonsDataFramesがデータ以外の情報が含まれているbeacuseこの

shapeOut <- (shapeIn[,1] == 1) 

は動作しません。あなたに

+0

本当にありがとうございました。私の投稿は、「シェイプファイル内のデータをサブセット化できませんでした」と題され、4回ダウンワードされました。それでも、問題は11月24日のLoBuによって確実に解決されました。フォーラムを再び利用できるようにするため、禁止を解除するために何をしなければならないかを明記してください。どうもありがとうございました。 – ilFonta

答えて

2

をありがとうございます。したがって、「共通の」data.frameサブセットは同じように機能しません。それが動作させるには、あなたは@dataスロットのサブセット化のための「論理的なチェック」を行う必要があります。この作業をする必要があります(いずれかのサブセットまたは「直接」インデックスを使用して):

shapeOut <- subset(shapeIn, [email protected][,1] == 1) 

OR

shapeOut <- shapeIn[[email protected][,1] == 1,] 

を(しかし、最近の経験では、列番号でデータを参照することはめったに良いことではありません... ;-))

ciao Giacomo !!!

+0

大変ありがとうございますLorenzo。 Ciao、un abbraccio !!! – ilFonta

関連する問題