I have the following data.frame that looks like this:
head(entries,10)
Provider.Region year.start month.start day.start Provider.Status
23511 North West 0010 05 17 Deregistered (V)
23512 North West 0010 05 17 Deregistered (V)
23709 West Midlands 0010 06 01 Registered
23562 London 0010 06 10 Registered
23563 London 0010 06 10 Registered
23566 London 0010 06 10 Registered
23764 West Midlands 0010 06 10 Deregistered (V)
23508 London 0010 06 11 Deregistered (V)
23555 West Midlands 0010 06 11 Registered
23497 South East 0010 06 14 Deregistered (V)
I want to count the factor level corresponding to Provider.Status
on a monthly basis. My desired output should be something like this:
head(entries.1, 3)
time region Deregistered (V) Registered
5-0010 North West 2 0
6-0010 West Midlands 2 1
6-0010 London 1 3
At the moment I have been using dplyr
as follows
library(dplyr)
entries %>%
group_by(Provider.Region, year.start, month.start) %>%
mutate(counts_status = n())
But still does not yield my expected output as it gives something like:
Source: local data frame [23,775 x 6]
Groups: Provider.Region, year.start, month.start [606]
Provider.Region year.start month.start Provider.Status counts_status
(fctr) (fctr) (fctr) (fctr) (int)
1 North West 0010 05 Deregistered (V) 2
2 North West 0010 05 Deregistered (V) 2
3 West Midlands 0010 06 Registered 4
4 London 0010 06 Registered 7
5 London 0010 06 Registered 7
6 London 0010 06 Registered 7
7 West Midlands 0010 06 Deregistered (V) 4
8 London 0010 06 Deregistered (V) 7
9 West Midlands 0010 06 Registered 4
10 South East 0010 06 Deregistered (V) 10
.. ... ... ... ... ...
Is there any compact way where I can create variables from the counts? Many thanks in advance