【发布时间】:2019-12-07 00:04:21
【问题描述】:
我有一个由 X 和 Y 坐标组成的大网格,每个坐标代表一个值。但是,网格内的某些组合不存在,请参见附图:
我想用 R 脚本识别缺失的 x-y 组合,但不知道如何执行此操作。获得这些组合的效率如何?
我的数据示例:
df1 <- structure(list(coord_n = c(1065125L, 1065875L, 1064625L, 1064375L,
1065625L, 1065375L, 1065625L, 1065125L, 1065625L, 1065125L, 1066125L,
1064625L, 1066375L, 1064125L, 1064375L, 1064625L, 1066375L, 1064875L,
1066125L, 1066625L, 1064375L, 1065125L, 1066375L, 1066625L, 1065125L,
1065875L, 1064125L, 1064375L, 1064125L, 1065875L, 1064625L, 1065125L,
1065125L, 1065625L, 1066375L, 1064375L, 1064875L, 1065875L, 1066375L,
1066625L, 1064375L, 1064625L, 1066375L, 1065875L, 1065375L, 1065375L,
1066625L, 1065375L, 1064625L, 1066625L, 1066125L, 1065625L, 1065375L,
1065875L, 1064125L, 1064375L, 1064875L, 1065625L, 1065625L, 1064625L,
1064875L, 1065375L, 1065875L, 1065875L, 1066625L, 1065875L, 1064875L,
1066625L, 1064875L, 1064125L, 1066125L, 1064375L, 1066375L, 1064125L,
1066625L, 1065125L, 1064625L, 1065625L, 1066125L, 1064125L, 1066375L,
1066625L, 1066375L, 1064125L, 1064875L, 1065375L, 1064375L, 1065625L,
1065875L, 1065375L, 1066375L, 1064875L, 1064375L, 1066625L, 1064375L,
1065875L, 1064375L, 1065375L, 1064875L, 1066375L), coord_e = c(2418625L,
2419125L, 2421875L, 2418125L, 2421375L, 2422375L, 2421125L, 2418875L,
2418625L, 2420375L, 2419375L, 2420625L, 2418875L, 2420625L, 2419125L,
2420875L, 2419125L, 2419875L, 2418375L, 2421625L, 2422375L, 2422375L,
2422125L, 2422125L, 2420125L, 2421875L, 2421875L, 2420125L, 2422375L,
2420625L, 2419625L, 2418375L, 2419625L, 2418375L, 2419875L, 2420875L,
2421375L, 2422375L, 2422375L, 2418125L, 2418375L, 2419125L, 2418625L,
2418875L, 2419375L, 2421375L, 2421125L, 2419125L, 2418375L, 2419625L,
2418875L, 2420125L, 2419875L, 2420375L, 2420375L, 2419875L, 2420375L,
2422375L, 2421875L, 2422375L, 2419375L, 2420875L, 2421125L, 2421375L,
2419125L, 2419375L, 2421625L, 2418375L, 2418875L, 2418375L, 2420125L,
2419625L, 2418375L, 2420125L, 2421375L, 2422125L, 2419875L, 2420375L,
2420375L, 2418625L, 2421125L, 2420125L, 2421625L, 2419875L, 2419125L,
2420625L, 2418625L, 2419375L, 2420125L, 2418125L, 2420125L, 2418625L,
2418875L, 2418625L, 2421125L, 2419875L, 2421375L, 2418875L, 2420875L,
2421875L), density_value = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), percentage_free = c(100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100)), class = c("data.table",
"data.frame"), row.names = c(NA, -100L))
【问题讨论】:
-
从
dput中删除.internal.selfref = <pointer: 0x102017ee0>... stackoverflow.com/questions/25533332/… -
你的网格分辨率是多少?
-
每个单元格为 250m x 250m - 坐标代表中心点。
-
所以如果一个网格从(左下点)
(1065125, 2418625)开始,那么右边和下面(例如东南单元格)的网格是(1065375, 2418875)? -
不,应该是 1065375 / 2418875。两点之间的距离总是 250 米。
标签: r dataframe matrix data.table