私はxy座標の2つのデータセットを持っています。最初のものには、xy座標と、因子レベルのタグ列があります。私はqq
data.frame
と呼ばれ、それが次のようになります。私は大きなsd
でqq
xy
手段を用いて他のいずれかのランダムなデータを生成しポリゴンの中の点数がRの因子で計算されます
structure(list(x = c(5109, 5128, 5137, 5185, 5258, 5324, 5387,
5343, 5331, 5347, 5300, 5180, 4109, 4082, 4091, 4139, 4212, 4279,
4291, 4297, 4285, 4301, 4254, 4181), y = c(1692, 1881, 2070,
2119, 2144, 2065, 1987, 1813, 1705, 1649, 1631, 1654, 1847, 2015,
2204, 2253, 2278, 2282, 2166, 1947, 1839, 1783, 1765, 1783),
tag = c("MPN_right", "MPN_right", "MPN_right", "MPN_right",
"MPN_right", "MPN_right", "MPN_right", "MPN_right", "MPN_right",
"MPN_right", "MPN_right", "MPN_right", "MPN_left", "MPN_left",
"MPN_left", "MPN_left", "MPN_left", "MPN_left", "MPN_left",
"MPN_left", "MPN_left", "MPN_left", "MPN_left", "MPN_left"
)), .Names = c("x", "y", "tag"), row.names = c(NA, -24L), class = "data.frame")
。
set.seed(123)
my_points=data.frame(x=rnorm(n =1000,mean=mean(qq$x),sd=1000),
y=rnorm(n=1000,mean=mean(qq$y),sd=1000))
私はmgcv
パッケージからin.out
機能を使用している場合、私は私が欲しいものをやや得ます。
このアプローチの主な問題は、私の 'Polygon'が閉じられておらず、factorによって2つのポリゴンとして解釈されないことです。パッケージは、間に1つのNA行を使用することを推奨しますが、2つ以上のレベル、つまり2つ以上のポリゴンをタグファクタで使用しようとしているので、タグ列を使用したいと思います。私の最終的な目標は、それぞれの点数の表を作成することです。
データフレームを適切な*空間オブジェクトに変換することをお勧めします。次に、特殊な空間操作を簡単に使用できるようになります。 – lbusett
あなたが本当に望んでいるか分かりませんが、 'library(recexcavAAR)'に単純な "Point-in-Polygon"関数を実装しました: 'pnpmulti(qq $ x、qq $ y、my_points $ x、my_points $ y ) ' – nevrome
in.outと同じように動作する、どのようにしてポリゴンを水平に作るのですか? –