2017-09-22 99 views
0

我試圖從包含124段的列表構建一個SpatialLines對象。 列表中的每個段包含每個節點的x,y座標(見下文)。我使用下面的代碼來創建SpatialLines對象,但它只是檢索一個段。有什麼建議麼?如何從列表創建SpatialLine對象?

test.func = function(x){ 
for (i in 1:length(x)) { 
    tt[[i]] <- x[i]; tt[[i]] = Line(tt[[i]]); tt[[i]] = Lines(list(tt[[i]]), 'i') 
    tt1 = SpatialLines(list(tt[[i]])) 
} 
return(tt1)} 

非常感謝

灰分,

enter image description here

回答

0

我發現這個問題存在於在線路的 'I' 參數,該參數應該被修改爲as.character(i)中。 第一個是通過循環('i','i',...)將Lines(,)的第二個參數賦值爲'i',而使用as.character(i)將第二個參數賦值爲(「1」,「2」,...)。

感謝Eric Berger的建議和幫助。

test.func = function(x){ 
tt1 <- list() 
for (i in 1:length(x)) { 
    tt1[[i]] <- x[[i]]; 
    tt1[[i]] = Line(tt1[[i]]); 
    tt1[[i]] = Lines(list(tt1[[i]]), as.character(i)) 
} 
tt2 = SpatialLines(tt1) 
return(tt2) 

}