2016-11-22 76 views
-4

我想開展我shape文件一個子集,而無需指定在.dbf文件的第一列的名稱數據子集。 更確切地說,我想選擇.dbf第一列中值爲1的所有行,但我不想指定此列的名稱。無法在shape文件

例如這個劇本的作品,因爲我指定的列名(列名)

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 

的你能幫我的頭?謝謝

+0

親愛的社區,我的帖子,題爲「無法在shape文件到數據子集」已被downvoted 4倍。儘管如此,LoBu在11月24日已經積極解決了這個問題。請你說明我必須做些什麼來取消我的禁令,因爲我希望能夠再次使用論壇。非常感謝你。 – ilFonta

回答

2

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

不工作怎麼一回事,因爲SpatialPolygonsDataFrames包含除數據之外的其他信息。所以「通用」數據框架子集不能以相同的方式工作。有它的工作,你必須爲在@data插槽子集的「邏輯檢查」:這應該工作(使用子集或「直接」索引):

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

OR

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

(然而,最近的經驗,通過柱數量的參考數據很少是個好主意...... ;-))

僑賈科莫!

+0

非常感謝親愛的洛倫佐。 Ciao,un abbraccio !!! – ilFonta