我对R相当陌生,当我试图计算缓冲区内每种湿地类型的面积时,我都会遇到错误。当我试图按湿地类型对数据进行分组并总结该区域时,我会收到错误的UseMethod () no applicable method for 'group_by' applied to an object of class c(SpatialPolygonsDataFrame).,如何解决这个问题?
library(tidyverse)
library(rgeos)
library(tidyr)
library(sf)
Neosho_wetlands<- readOGR("HU8_11070205_watershed", layer="HU8_11070205_Wetlands")
Spring_wetlands<- readOGR("HU8_11070207_watershed", layer="HU8_11070207_Wetlands")
North_wetlands<- readOGR("HU8_10290104_watershed", layer="HU8_10290104_Wetlands")
South_wetlands<- readOGR("HU8_11070206_watershed", layer="HU8_11070206_Wetlands")
wetlands<-rbind(Neosho_wetlands, Spring_wetlands, North_wetlands, South_wetlands)
rm("Neosho_wetlands", "Spring_wetlands","North_wetlands","South_wetlands")
plot(wetlands)
points<-read.csv("SiteCov.csv")
coordinates(points)<-points[c("long", "lat")]
proj4string(points)<-CRS("+proj=longlat")
points_sp<-spTransform(points, crs(wetlands))
buffer2<-buffer(points_sp[1:32,], 2000)
crop2<-crop(wetlands, buffer2)
plot(crop2)
as.data.frame(crop2)
crop2 %>% group_by(WETLAND_TY) %>%
summarize(sum("Freshwater Emergent Wetland",
"Freshwater Forested/Shrub Wetland",
"Freshwater Pond",
"Lake",
"Riverine"))发布于 2022-07-28 20:15:06
当前运行as.data.frame(crop2),但不将其分配给对象。因此,当您将crop2传递给group_by()时,它仍然是一个SpatialPolygonsDataFrame,并且它没有很好地处理它。您应该能够简单地将as.data.frame(crop2)更改为crop2 <- as.data.frame(crop2)并保持良好状态。否则,您可以按照乔纳森在注释中所指出的那样使用st_read()。
https://stackoverflow.com/questions/73157668
复制相似问题