gpt4 book ai didi

对 sf 对象的行操作

转载 作者:行者123 更新时间:2023-12-01 15:08:36 24 4
gpt4 key购买 nike

我在对 sf 对象进行行向操作时遇到了一些问题,其中几何是多边形类型。

by_row 中的 sf 函数似乎不起作用,例如以下应创建一个包含边界框对象的列表列:

 purrr::by_row(sf_polygons_object, function(x) {
list(st_bbox(x))
}, .to = 'bb')

Error in UseMethod("st_bbox") : no applicable method for 'st_bbox' applied to an object of class "c('tbl_df', 'data.frame')"

(本身不是最有用的示例,但可以说明问题)。

我尝试了一些替代方法,例如rowwise() %>% mutate() , mutate( x = apply(., 1, function(x) ...)), 没有一个像他们那样工作't 为 st_bbox() 提供它需要的 sf 对象。这是一个错误,还是我没有很好地解决这个问题?

编辑:可重现的例子

library(sp)
library(rgdal)
library(rgeos)
library(sf)
library(tidyverse)
library(rnaturalearth)

nec <- st_as_sf(ne_countries()[1:5,]) %>%
purrr::by_row(., function(x) st_bbox(x), .to = 'bb')

最佳答案

无需破解。只需拆分和映射功能:

st_as_sf(ne_countries()[1:5,]) %>% 
mutate(bb = split(., 1:5) %>% purrr::map(st_bbox))

关于对 sf 对象的行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43694187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com