使用 terra 将列添加到 shapefile?

问题描述 投票:0回答:1

我们有一个像这样的形状文件:

library(terra)
#> terra 1.6.7
v <- system.file("ex/lux.shp", package="terra") |> vect()

我们可以像这样添加字段或列:

v[["ID_new_v1"]] <- 1:nrow(v)
v$ID_new_v2 <- 1:nrow(v)

但是,我想添加一列 from:dat, 列 my, 到 v 中 NAME_2 中的所有对应名称

dat=structure(list(ec = c("Diekirch", "Redange"), med.x = c(7, 8), 
                   co.x = c(113L, 590L), my = c(3, 5), co.y = c(113L, 590L), 
                   per = c(3, 9)), row.names = 1:2, class = "data.frame")
r raster shapefile terra
1个回答
1
投票

您可以使用

left_join
包中的
tidyterra
将数据框连接到 shapefile,如

library(terra)
library(tidyterra)

v <- system.file("ex/lux.shp", package="terra") |> vect()

dat=structure(list(ecoregion = c("Diekirch", "Redange"), med.x = c(7, 8), 
                   co.x = c(113L, 590L), my = c(3, 5), co.y = c(113L, 590L), 
                   per = c(3, 9)), row.names = 1:2, class = "data.frame")

left_join(v, dat, by = c("NAME_2" = "ecoregion"))
© www.soinside.com 2019 - 2024. All rights reserved.