假设我有以下sf
数据框:
library(sf)
nrows <- 10
geometry = st_sfc(lapply(1:nrows, function(x) st_geometrycollection()))
df <- st_sf(id = 1:nrows, geometry = geometry)
我还有以下列表:
mylist = list('2'=st_point(c(-73,42)), '3'=NA)
我想用列表中的点替换第二个观察中的几何。我曾想过做以下事情:
st_geometry(df[names(mylist),]) <- st_sfc(mylist)
但这会引发错误:
“vapply(lst, class, rep(NA_character_, 3)) 中的错误:值的长度必须为 3,但 FUN(X[[2]]) 结果的长度为 1”
我通过首先消除 NA 值找到了以下解决方法:
condition <- mylist[!is.na(mylist)]
st_geometry(df[names(condition),]) <- st_sfc(condition)
有一个更好的方法吗?我可以强制 NA 元素mylist
为空点吗?