R 如何将xy点重新编码为多边形空间连接中的新单位?

R 如何将xy点重新编码为多边形空间连接中的新单位?,r,ggplot2,geospatial,R,Ggplot2,Geospatial,所以我想从数据框中映射xy点,然后用一个与新多边形相关的标记对它们重新编码,这样我就可以将它们链接到该单元;根据我的理解,这需要空间连接。我一直在关注这些链接: 我遗漏了一些关于数据帧转换过程的信息,我不确定我在哪里出错。我正在粘贴来自开放数据API的快速且肮脏的可复制代码作为示例。我使用的形状文件是位于以下位置的纽约社区区文件: 代码如下: 在这种情况下,作为一个可复制的样本,让我们从开放数据中获取这些点,并将它们映射到纽约市的社区地区文件中。感谢你们的帮助 #libraries----

所以我想从数据框中映射xy点,然后用一个与新多边形相关的标记对它们重新编码,这样我就可以将它们链接到该单元;根据我的理解,这需要空间连接。我一直在关注这些链接:

我遗漏了一些关于数据帧转换过程的信息,我不确定我在哪里出错。我正在粘贴来自开放数据API的快速且肮脏的可复制代码作为示例。我使用的形状文件是位于以下位置的纽约社区区文件:

代码如下:

在这种情况下,作为一个可复制的样本,让我们从开放数据中获取这些点,并将它们映射到纽约市的社区地区文件中。感谢你们的帮助

#libraries--------------------------

         library(ggplot2)
         library(ggmap)
         library(sp)
         library(jsonlite)
         library(RJSONIO)

#call api data--------------------------

         df =  fromJSON("https://data.cityofnewyork.us/resource/24t3-xqyv.json?$query= SELECT Lat, Long_")
         df = df[1:10000]
         df <- data.frame(t(matrix(unlist(df),        nrow=length(unlist(df[1])))))
         names(df)[names(df) == 'X2'] = 'x'
         names(df)[names(df) == 'X1'] = 'y'
         df = df[, c("x", "y")]
         df$x = as.numeric(as.character(df$x))
         df$y = as.numeric(as.character(df$y))
         df$x = round(df$x, 4)
               df$y = round(df$y, 4)
               df$x[df$x < -74.2] = NA
                 df$y[df$y < 40.5] = NA
               df = na.omit(df)

    #map data----------------------------




    cd = readOGR("nycd.shp", layer = "nycd")
            cd = spTransform(cd, CRS("+proj=longlat +datum=WGS84"))
             cd_f = fortify(cd)


#map data
            nyc = ggplot() +
           geom_polygon(aes(x=long, 
               y=lat, group=group), fill='grey', 
           size=.2,color='black', data=cd_f, alpha=1)


            nyc + geom_point(aes(x = x, y = y), data = df, size = 1)


#spatial join---------------------------


# Convert pointsDF to a SpatialPoints object 
                    pointsSP <- SpatialPoints(df, 
                      proj4string=CRS("+proj=longlat +datum=wgs84"))

                 Error in CRS("+proj=longlat +datum=wgs84") : 
                   unknown elliptical parameter name

                   # Use 'over' to get _indices_ of the Polygons object  containing each point 
                   indices <- over(pointsSP, cd)
#库--------------------------
图书馆(GG2)
图书馆(ggmap)
图书馆(sp)
图书馆(jsonlite)
图书馆(RJSONIO)
#调用api数据--------------------------
df=fromJSON(“https://data.cityofnewyork.us/resource/24t3-xqyv.json?$query=选择横向、纵向
df=df[1:10000]

df您必须提供正确的CRS。我在(WGS 1984)上找到的


您必须提供正确的CRS。我在(WGS 1984)上找到的


像往常一样,你们都是最好的!非常感谢。像往常一样,你们都是最好的!非常感谢。
# Convert pointsDF to a SpatialPoints object 
pointsSP <- SpatialPoints(df, 
                          proj4string=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"))
pointsSP <- spTransform(pointsSP, proj4string(cd))

# Use 'over' to get _indices_ of the Polygons object  containing each point 
indices <- over(pointsSP, cd)
head(indices)
#   BoroCD Shape_Leng Shape_Area
# 1    407  139168.79  328355685
# 2    407  139168.79  328355685
# 3    407  139168.79  328355685
# 4    407  139168.79  328355685
# 5    407  139168.79  328355685
# 6    105   35287.62   43796717