Нахождение, какие строки соответствуют выводу значения функции / всего - PullRequest
0 голосов
/ 01 ноября 2019

Мои данные похожи на следующие:

# A tibble: 7 x 3
# Groups:   offense [7]
    lon   lat offense           
  <dbl> <dbl> <fct>             
1 -95.3  29.8 aggravated assault
2 -95.4  29.9 auto theft        
3 -95.3  29.8 burglary          
4 -95.5  29.7 murder            
5 -95.4  30.0 rape              
6 -95.5  29.8 robbery           
7 -95.4  29.8 theft  

Я могу запустить следующее

cbind(df, X = rowSums(distm(df[,1:2], fun = distHaversine) / 1000 <= 10))

# A tibble: 7 x 4
# Groups:   offense [7]
    lon   lat offense                X
  <dbl> <dbl> <fct>              <dbl>
1 -95.3  29.8 aggravated assault     3
2 -95.4  29.9 auto theft             2
3 -95.3  29.8 burglary               3
4 -95.5  29.7 murder                 1
5 -95.4  30.0 rape                   2
6 -95.5  29.8 robbery                1
7 -95.4  29.8 theft                  3

Что дает мне количество точек в радиусе 10 км в соответствии с этим SO post .

Что я хотел бы знать, так это то, как изменить эту функцию, чтобы дать мне строки, которые соответствуют каждой точке в радиусе. Первая строка имеет значение 3, это значение может состоять из наблюдения, например, из строк 2, 4 и 7.

Может выглядеть так:

    lon   lat offense                X    points

1 -95.3  29.8 aggravated assault     3   c(2,4,7)
2 -95.4  29.9 auto theft             2   c(2,3)
3 -95.3  29.8 burglary               3   c(4,5,7)

Получив эти списки, я хотел бы создать списки, в которых строка 1 будет списком, содержащим списки 1, 2, 4 и 7. (Однако это может быть другой вопрос)

Данные:

library(geosphere)
library(ggmap)
df <- crime %>% 
  group_by(offense) %>% 
  sample_n(1) %>% 
  select(lon, lat, offense)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...