Как агрегировать данные в R - PullRequest
0 голосов
/ 24 марта 2019

Я хочу создать новый фрейм данных на основе округов и сгруппировать набор данных по количеству в каждом округе на основе «года», «типа собственности» и его старого или нового.

Я пыталсяагрегатная функция, но я теряю значения для других переменных.Ниже приведен набор данных

 Property.Type Old.New Town.City District             County         Date 
 1 D             N       BARKING   BARKING AND DAGENHAM GREATER LONDON 2012 
 2 D             Y       BARKING   BARKING AND DAGENHAM GREATER LONDON 2012 
 3 D             N       BARKING   BARKING AND DAGENHAM GREATER LONDON 2012 
 4 D             N       DAGENHAM  BARKING AND DAGENHAM GREATER LONDON 2012 
 5 D             N       DAGENHAM  BARKING AND DAGENHAM GREATER LONDON 2012 

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

by year
District 2012 2013 2014 2015
Barking  100  500  700 800

by Old.New and year 

District New  Old
Barking  50    70

by property type and year
District New2012  Old2012
Barking  50    70

1 Ответ

0 голосов
/ 25 марта 2019

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

Сначала заново создайте фрейм данных с предоставленными данными:

Property.Type <- c("D","D","D","D","D")
Old.New <- c("N","Y","N","N","N")
Town.City <- c("BARKING","BARKING","BARKING","DAGENHAM","DAGENHAM")
District <- c("BARKING AND DAGENHAM","BARKING AND DAGENHAM","BARKING AND DAGENHAM","BARKING AND DAGENHAM","BARKING AND DAGENHAM")
County <- c("GREATER LONDON","GREATER LONDON","GREATER LONDON","GREATER LONDON","GREATER LONDON")
Date <- c(2012,2012,2012,2012,2012)    
df <- data.frame(Property.Type,Old.New,Town.City,District,County,Date)

Затем агрегируйте по некоторым столбцам:

> df %>% group_by(Town.City) %>% summarise(n = n())
# A tibble: 2 x 2
  Town.City     n
  <fct>     <int>
1 BARKING       3
2 DAGENHAM      2
> 
> df %>% group_by(Date, Town.City) %>% summarise(n = n())
# A tibble: 2 x 3
# Groups:   Date [?]
   Date Town.City     n
  <dbl> <fct>     <int>
1  2012 BARKING       3
2  2012 DAGENHAM      2
> 
> df %>% group_by(Date, Town.City) %>% summarise(n = n())
# A tibble: 2 x 3
# Groups:   Date [?]
   Date Town.City     n
  <dbl> <fct>     <int>
1  2012 BARKING       3
2  2012 DAGENHAM      2
> 
> df %>% group_by(Property.Type, Date) %>% summarise(n = n())
# A tibble: 1 x 3
# Groups:   Property.Type [?]
  Property.Type  Date     n
  <fct>         <dbl> <int>
1 D              2012     5

. Для дальнейшей ссылки перейдите по этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...