count number of rows in a data frame in R based on group
dataframe, r, rowcount
Solution
Here's an example that shows how `table(.)` (or, more closely matching your desired output, `data.frame(table(.))` does what it sounds like you are asking for.
Note also how to share reproducible sample data in a way that others can copy and paste into their session.
Here's the (reproducible) sample data:
mydf <- structure(list(ID = c(110L, 111L, 121L, 131L, 141L),
MONTH.YEAR = c("JAN. 2012", "JAN. 2012",
"FEB. 2012", "FEB. 2012",
"MAR. 2012"),
VALUE = c(1000L, 2000L, 3000L, 4000L, 5000L)),
.Names = c("ID", "MONTH.YEAR", "VALUE"),
class = "data.frame", row.names = c(NA, -5L))
mydf
# ID MONTH.YEAR VALUE
# 1 110 JAN. 2012 1000
# 2 111 JAN. 2012 2000
# 3 121 FEB. 2012 3000
# 4 131 FEB. 2012 4000
# 5 141 MAR. 2012 5000
Here's the calculation of the number of rows per group, in two output display formats:
table(mydf$MONTH.YEAR)
#
# FEB. 2012 JAN. 2012 MAR. 2012
# 2 2 1
data.frame(table(mydf$MONTH.YEAR))
# Var1 Freq
# 1 FEB. 2012 2
# 2 JAN. 2012 2
# 3 MAR. 2012 1
Problem
I have a data frame in `R` like this: ``` ID MONTH-YEAR VALUE 110 JAN. 2012 1000 111 JAN. 2012 2000 . . . . 121 FEB. 2012 3000 131 FEB. 2012 4000 . . . . ``` So, for each month of each year there are `n` rows and they can be in any order(mean they all are not in continuity and are at breaks). I want to calculate how many rows are there for each `MONTH-YEAR` i.e. how many rows are there for JAN. 2012, how many for FEB. 2012 and so on. Something like this: ``` MONTH-YEAR NUMBER OF ROWS JAN. 2012 10 FEB. 2012 13 MAR. 2012 6 APR. 2012 9 ``` I tried to do this: ``` n_row <- nrow(dat1_frame %.% group_by(MONTH-YEAR)) ``` but it does not produce the desired output.How can I do that?