1
가정하자 나는 다음과 같은 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)
을하지만이 오류가 발생합니다 :
"Error in vapply(lst, class, rep(NA_character_, 3)) : values must be length 3, but FUN(X[[2]]) result is length 1"
내가 먼저 NA 값을 제거하여 다음 해결 방법을 발견
condition <- mylist[!is.na(mylist)]
st_geometry(df[names(condition),]) <- st_sfc(condition)
을 거기인가 이것을하는 더 좋은 방법? mylist
의 NA 요소가 빈 포인트가되도록 강제 적용 할 수 있습니까?
이 예에서 목록의 NA는 하나뿐입니다. 하나 이상의 NA 요소가 있다면 어떻게합니까? 이 경우 이중 브래킷은 오류를 발생시킵니다. – user21359
'na_rows <- which (is.na (mylist))'; 'for (na_rows의 행) st_geometry (df [row,]) <- st_sfc (st_point())' – lbusett
위대한, 고마워! – user21359