Dưới đây là một ví dụ mở rộng từ họa tiết sp minh họa cách tạo 'SpatialLinesDataFrame' từ một đối tượng 'data.frame' thông thường. Tôi sử dụng một số dữ liệu mẫu được tạo từ độ dài của 'SpatialLines' thông qua gLengthtừ rgeos . Lưu ý rằng rownamestập dữ liệu đã tạo được truyền vào SpatialLinesDataFramephải giống hệt với ID dòng được xác định trước đó (trong trường hợp cụ thể này là "a" và "b").
library(sp)
## from the sp vignette:
l1 <- cbind(c(1, 2, 3), c(3, 2, 2))
l2 <- cbind(c(1, 2, 3), c(1, 1.5, 1))
Sl1 <- Line(l1)
Sl2 <- Line(l2)
S1 <- Lines(list(Sl1), ID = "a")
S2 <- Lines(list(Sl2), ID = "b")
Sl <- SpatialLines(list(S1, S2))
## sample data: line lengths
library(rgeos)
df <- data.frame(len = sapply(1:length(Sl), function(i) gLength(Sl[i, ])))
rownames(df) <- sapply(1:length(Sl), function(i) Sl@lines[[i]]@ID)
## SpatialLines to SpatialLinesDataFrame
Sldf <- SpatialLinesDataFrame(Sl, data = df)
plot(Sldf, col = c("red", "blue"))
text(labels = paste0("length = ", round(Sldf@data$len, 2)),
x = gCentroid(Sldf, byid = TRUE)$x,
y = gCentroid(Sldf, byid = TRUE)$y)

?Lineschưa? Các dòng cần hai tham số làm đầu vàoLines(slinelist, ID)