Подсчитать количество точек, которые находятся внутри заранее определенной сетки - PullRequest
2 голосов
/ 22 января 2020

У меня есть набор данных, который включает координаты X, Y, и я хочу знать, как точки в моем наборе данных попадают в каждый квадрат в сетке, которую я предварительно определил.

Вот пример кода, который генерирует следующий график.

То, что я хотел бы сделать, это назначить идентификатор группы каждому наблюдению, которое говорит вам, в какой квадрат попадает эта точка. Таким образом, я могу затем подсчитать количество точек в каждом идентификаторе группы

df <- data.frame(replicate(2,sample(0:100,100,rep=TRUE)))

  ggplot(df, aes(x = X1, y = X2)) + 
  geom_point()

enter image description here

1 Ответ

3 голосов
/ 22 января 2020

Используйте cut для координат x и y с перерывами каждые 25 или что-то еще, тогда вы можете использовать dplyr для подсчета по группам.

library(dplyr)
df %>% mutate(
  cut_x = cut(X1, breaks = seq(0, 100, by = 25), include.lowest = T),
  cut_y = cut(X2, breaks = seq(0, 100, by = 25), include.lowest = T)
) %>%
count(cut_x, cut_y)
# # A tibble: 16 x 3
#    cut_x    cut_y        n
#    <fct>    <fct>    <int>
#  1 [0,25]   [0,25]       6
#  2 [0,25]   (25,50]      4
#  3 [0,25]   (50,75]      6
#  4 [0,25]   (75,100]     9
#  5 (25,50]  [0,25]       3
#  6 (25,50]  (25,50]      2
#  7 (25,50]  (50,75]      6
#  8 (25,50]  (75,100]     6
#  9 (50,75]  [0,25]       5
# 10 (50,75]  (25,50]      6
# 11 (50,75]  (50,75]      6
# 12 (50,75]  (75,100]     4
# 13 (75,100] [0,25]       8
# 14 (75,100] (25,50]     13
# 15 (75,100] (50,75]     10
# 16 (75,100] (75,100]     6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...