我试图使用内部连接或左连接来连接两个包含几何列的sf数据帧。然而,我一直收到以下错误信息:
Error in check_join(x, y) :
y should be a data.frame; for spatial joins, use st_joinFALSE
以下是可重现的示例:
df1 <- data.frame(
var = c("a", "b", "c"),
lon1 = c(20,35,45),
lat1 = c(50,10,15)
) %>% st_as_sf(coords = c("lon1", "lat1"), dim = "XY") %>%
st_set_crs(4326)
df2 <- data.frame(
var = c("a", "b", "c"),
lon2 = c(15,25,35),
lat2 = c(5,10,15)
) %>% st_as_sf(coords = c("lon2", "lat2"), dim = "XY") %>%
st_set_crs(4326)
df <- inner_join(df1, df2, by = "var")
我不想放弃几何,因为我认为这可能会在后面混淆我的结果,但是任何解决方案都欢迎。
st_join
,如错误消息中所解释的。另一个可能性是创建几何形状之间的交集(st_intersection
)。这取决于你想要完成的任务(可能是第一种选项)。 - Gilles San Martin