如何将 shp 文件中的数据与数据框中包含的数据进行匹配?

How to match the data from a shp file with those contained in a dataframe?

我正在从 shp 文件中绘制空间样本。这样:

pr <- readShapePoly("PuertoRico.shp")
 n <- 90
 samp.reg <- spsample(pr, n, type="regular")

这是我得到的:

samp.reg
SpatialPoints:
         x1       x2
 #[1,] -66.15482 17.93279
 #[2,] -67.15842 18.02403
 #[3,] -67.06718 18.02403
 #[4,] -66.97595 18.02403
 #[5,] -66.88471 18.02403

以此类推,直至[90,]

现在,我想从不仅包含坐标,还包含我需要研究的连接变量的数据框中提取 刚刚绘制的样本中包含的观察结果 (即海拔)。 您可以在下面看到数据框的样子。

df <- read.csv("pr_elev_rs.csv",header=TRUE)
 head(df)
  Label         x        y elevation
1 BL192 -67.27045 18.36269         0
2 BM191 -67.26450 18.36761        30
3 BM192 -67.26490 18.36020        56
4 BM193 -67.26287 18.35222         0
5 BM194 -67.26075 18.34632         0
6 BN190 -67.25191 18.37403        10

我是 R 的初学者,我不知道我该怎么做。谢谢你的帮助,我真的需要它。

不确定我是否正确理解了你的问题。

 match <- df$x %in% samp.reg@coords[,1] & df$y %in% samp.reg@coords[,2]
 extract_df_row <- df[match,]

这是你需要的吗??

编辑: 现在你可以子集

 if(nrow(extract_df_row)>0) {
  coordinates(extract_df_row) <- cbind(extract_df_row$x, extract_df_row$y)
  }else{
    cat("no coordinates matching df")
  }