Как я могу проверить, находится ли головная фирма в том же городе, что и дочерние компании? - PullRequest
0 голосов
/ 07 августа 2020

Я новичок в пространственной статистике и не знаю, как обобщить вопрос.

Но у меня есть структура:

firm <- c(11212, 11212,11212,11212, 2632, 2632, 3552, 4218, 536, 6667, 6667, 6667, 7278, 7278)
id_p_s <- c(1, 2, 2,2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2)
city <- c("PITIMBU", "ALHANDRA","ALHANDRA","ALHANDRA" "CARUARU", "BREJO DA MADRE DE DEUS",
               "GUARAPUAVA", "ARAPIRACA", "FEIRA DE SANTANA", "GUARAPUAVA",
               "GUARAPUAVA", "MOGI DAS CRUZES", "PIRACICABA", "PIRACICABA")
enterprises <- data.frame(firm = firm, id_p_s = id_p_s,
                       city = city) 

Если компания является родительской , то id_p_s==1 иначе 2. Как я могу проверить, находится ли головная фирма в том же городе, что и одна из его дочерних компаний?

Просто чтобы знать, каждая фирма имеет 1 материнскую компанию и может иметь 0, 1 или более дочерних компаний.

Я пытался использовать group_by и filter с tidyverse, но не могу найти хороший способ просмотреть эту информацию. После этого я рассчитаю расстояние от материнской компании до дочерних компаний и внутри дочерних компаний.

Я думал примерно так:

 firm             city             amout_of_firms       include_parent

 11212          PITIMBU                    1                F
 11212          ALHANDRA                   3                F  
 2632           CARUARU                    1                F
 2632           BREJO DA MADRE DE DEUS     1                F
 3552           GUARAPUAVA                 1                F
 4218           ARAPIRACA                  1                F
 536            FEIRA DE SANTANA           1                F
 6667           GUARAPUAVA                 2                T
 6667           MOGI DAS CRUZES            1                F
 7278           PIRACICABA                 2                T

Итак, я могу отфильтровать include_parent==T и найти ведьмовскую фирму иметь материнскую компанию и одну или несколько дочерних компаний в одном городе.

Ответы [ 2 ]

1 голос
/ 07 августа 2020

Для каждых firm и city вы можете подсчитать количество строк в нем и проверить, есть ли в id_p_s значения 1 и 2.

library(dplyr)

enterprises %>%
  group_by(firm, city) %>%
  summarise(amount_of_firms = n(), 
            include_parent = all(1:2 %in% id_p_s))

#    firm city                   amount_of_firms include_parent
#   <dbl> <chr>                            <int> <lgl>         
# 1   536 FEIRA DE SANTANA                     1 FALSE         
# 2  2632 BREJO DA MADRE DE DEUS               1 FALSE         
# 3  2632 CARUARU                              1 FALSE         
# 4  3552 GUARAPUAVA                           1 FALSE         
# 5  4218 ARAPIRACA                            1 FALSE         
# 6  6667 GUARAPUAVA                           2 TRUE          
# 7  6667 MOGI DAS CRUZES                      1 FALSE         
# 8  7278 PIRACICABA                           2 TRUE          
# 9 11212 ALHANDRA                             3 FALSE         
#10 11212 PITIMBU                              1 FALSE         

Эквивалент data.table будет быть:

library(data.table)
setDT(enterprises)[, .(amount_of_firms = .N, 
                       include_parent = all(1:2 %in% id_p_s)), .(firm, city)]
1 голос
/ 07 августа 2020

Я не уверен, что это то, что вам нужно

> aggregate(company ~.,enterprises,list)
   id_m_s                   city company
1       2               ALHANDRA       1
2       1              ARAPIRACA       4
3       2 BREJO DA MADRE DE DEUS       2
4       1                CARUARU       2
5       1       FEIRA DE SANTANA       5
6       1             GUARAPUAVA    3, 6
7       2             GUARAPUAVA       6
8       2        MOGI DAS CRUZES       6
9       1             PIRACICABA       7
10      2             PIRACICABA       7
11      1                PITIMBU       1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...