У меня есть два набора данных координат xy. Первая имеет координаты xy плюс столбец тегов с моими уровнями факторов. Я назвал data.frame
qq
и это выглядит следующим образом:Подсчет точек внутри полигонов по коэффициенту в 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")
я сгенерировал случайные данные для другого, используя qq
xy
средство с большим sd
.
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))
, если я использую функцию in.out
из mgcv
пакета, я получаю несколько, что я хочу.
Основные проблемы, связанные с этим подходом, состоят в том, что мой «многоугольник» не закрыт и не будет интерпретироваться как 2 многоугольника. Пакет советует использовать одну строку NA между ними, но я бы предпочел использовать столбец тегов, так как я буду пытаться использовать более двух уровней в моем теге, а именно более двух полигонов). Моя конечная цель - создать таблицу количества точек в каждом из них.
Я бы предложил конвертировать ваши кадры данных в надлежащие * Пространственные объекты. Тогда вы сможете легко использовать специализированные пространственные операции. – lbusett
Я не уверен, что вы действительно хотите, но я реализовал простую функцию «Point-in-Polygon» в 'library (recexcavAAR)': 'pnpmulti (qq $ x, qq $ y, my_points $ x, my_points $ y) ' – nevrome
Это работает так же in.out, Как сделать мои полигоны на уровне? –