R dplyr - count and select first row by group : df <- data.frame(id = c(1, 1, 2, 2, 2), desc = c("a1", "a2", "b1", "b2", "b3"))

I would like to count by id and select the first row of desc within each id group. That is, return a data frame like the following.

```
id count desc
1  2     a1
2  3     b1
```

Is there an easy way to do it using dplyr package? Can pipes + group_by() + summarise() do the work without using filter() and join()?

Stata can do it as 

`collapse (count) count=id (first) desc, by(id)`

Thanks.

Jay