2

次の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) 

2 番目の観測のジオメトリをリスト内のポイントに置き換えたいと考えています。私は次のことをすることを考えていました:

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空の点にすることはできますか?

4

1 に答える 1