3

私はRが初めてで、(私の意見では)単純な問題がありますが、これまで解決策を見つけていません。私は2D(x、y)座標の(長い)セットを持っています-次のように2D空間のポイントだけです:

ID  x   y
1   1758.56 1179.26
2    775.67 1197.14
3   296.99  1211.13
4   774.72  1223.66
5   805.41  1235.51
6   440.67  1247.59
7   1302.02 1247.93
8   1450.4  1259.13
9   664.99  1265.9
10  2781.05 1291.12
etc.....

特定の領域 (任意の形状) にあるポイント (テーブル内の行) をフィルタリングするにはどうすればよいですか? 指定された座標のサブセット内にあるドットをフィルタリングする方法。必要な/不要な領域サブセットを指定するにはどうすればよいですか? そして、それをRに入れる方法は?:) 前もってたくさんありがとう!

4

1 に答える 1

6

ポイントが何らかの形状の内部にあるかどうかを確認するには、パッケージのinpip関数を使用します。splancs

library(splancs)

set.seed(123)
my.shape <- matrix(runif(10), 5)
my.points <- data.frame(x=runif(500), y=runif(500))
my.points$in.shape <- 1:500 %in% inpip(my.points, my.shape)

plot(my.points[1:2], col=1 + my.points$in.shape)
polygon(my.shape)

単一形状

複数の形状をテストするには、それらをリストに入れて使用しますlapply

set.seed(127)
multi.shapes <- lapply(1:3, function(...) matrix(runif(6), 3))
my.points$in.multi.shapes <- 1:500 %in%
    unlist(lapply(multi.shapes, function(p) inpip(my.points, p)))
plot(my.points[1:2], col=1 + my.points$in.multi.shapes)
for(p in multi.shapes) polygon(p)

複数の形状

于 2013-07-10T13:27:13.173 に答える