2013-02-04 69 views
0

我一直在使用下列重要的.shp文件爲R罰款年齡文件:列表SHP文件失敗,大量

require(maptools) 
require(rgeos) 

shp <- lapply(list.files(pattern="*.shp"), readShapePoly) 

如果我加載文件的一把它工作正常。不過,我試圖加載〜1000個文件,我剛剛得到的(普通)錯誤信息:

Error in getinfo.shape(filen) : Error opening SHP file 

我一直在網上尋找,但一直沒能找到解決的辦法。工作目錄設置正確,伴隨的.dbf .shx和.prj文件存在於每個shape文件中。另外,

list.files(getwd(),pattern="shp") 

確實會返回每個文件。所以我有點困惑,我錯過了什麼明顯的東西?

感謝

回答

1

要麼改變你的lapply到環路或使用options(error=recover) trick找出哪些文件是給你的麻煩。

不幸的是R形文件函數往往會對文件擴展名挑剔。確保集體組成shapefile的所有不同文件的所有大寫都一致。

如果您認爲這是一個特定文件,則可以使用trytryCatch來捕獲該錯誤。

+0

選項(錯誤=恢復)是非常有用的,不幸的是它只列出了前兩個文件集(1個名稱和4個擴展名)有問題,如果僅在自己的測試上工作 –

+2

如果它工作。嘗試指定完整路徑或嘗試指定不帶擴展名* .shp的形狀文件*的名稱。我記得在rgdal和郵件列表上的一些討論中發生了一些變化。 – Rainer

+0

And:哪個版本的R,maptools,所有其他包maptools依賴於moght會有用(sessinInfo()) 適用於我: R版本2.15.2(2012-10-26) 平臺:i686-pc- linux-gnu(32位) [1] rgeos_0.2-12 maptools_0.8-22 lattice_0.20-13 sp_1.0-5 [5] foreign_0.8-52 通過命名空間加載(而不是附件): [1] tools_2.15.2 – Rainer