2016-09-07 48 views
0

我想在使用list.vector的Geospatial建模環境中創建shapefile列表。其中的作品和產生以下列表。在For循環中定義shapefile列表(List.Vector) - 地理空間建​​模環境

list.vector(in="D:\Buffers", match="*.shp"); 

D:\Buffers\OBJECTID_1.shp, D:\Buffers\OBJECTID_10.shp, D:\Buffers\OBJECTID_100.shp,
D:\Buffers\OBJECTID_1000.shp, D:\Buffers\OBJECTID_10000.shp......

我就喜歡,然後通過不同的形狀文件循環使用isectpolypoly功能。目前我的代碼是:

list<-list.vector(in="D:\Buffers", match="*.shp"); 

for (i in 1:length(list)) { 

isectpolypoly(in=paste(i), poly="D:\Polygons\agri.shp", field="P_", thematic=TRUE, proportion=TRUE); 

}; 

我收到以下錯誤。

Error: The for loop has not been specified correctly. The length function does not appear to refer to a defined vector.

所以它看起來好像我沒有定義「列表」正確,能夠在循環使用它。關於如何做到這一點,我找不到任何明確的答案。

任何人都可以幫助我更改我的代碼,以便我可以定義shapefile的列表,然後通過列表中的shapefile循環?

回答

0

如果有人有興趣,我設法解決我自己的問題。

我無法成功回想清單,並且由於每個shapefile文件都有唯一的數字標識符,因此可能只是循環顯示數字。

wd<-"D:\Buffers\"; 
for (i in 10001:10006); 
{ 
isectpolypoly(in=paste(wd,"OBJECTID_",i,".shp"), 
poly="D:\Polygons\agri.shp", 
field=「CLASS」, 
prefix="P_", 
thematic=TRUE, proportion=TRUE) 
};