R 按组计数并选择第一行

R 按组计数并选择第一行,r,dplyr,R,Dplyr,我有以下数据: df <- data.frame(id = c(1, 1, 2, 2, 2), desc = c("a1", "a2", "b1", "b2", "b3")) 使用dplyr包有没有一种简单的方法?管道+分组依据()+摘要()是否可以不使用过滤器()和连接() Stata可以这样做: collapse (count) count=id (first) desc, by(id) 我们可以使用摘要 library(dplyr) df %>% group_by(

我有以下数据:

df <- data.frame(id = c(1, 1, 2, 2, 2), desc = c("a1", "a2", "b1", "b2", "b3"))
使用dplyr包有没有一种简单的方法?管道+
分组依据()
+
摘要()
是否可以不使用
过滤器()
连接()

Stata可以这样做:

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

我们可以使用
摘要

library(dplyr)
df %>% 
   group_by(id) %>% 
   summarise(count=n(), desc = first(desc))
#       id count   desc
#      <dbl> <int> <fctr>
#1      1     2     a1
#2      2     3     b1
库(dplyr)
df%>%
分组依据(id)%>%
总结(计数=n(),描述=first(描述))
#id计数说明
#        
#1 12 a1
#2 2 3 b1

尝试
分组依据()
+
切片()
df%>%groupby(id)%%>%mutate(count=n())%%>%slice(1)
带有
数据。table
setDT(df)[,(count=.n,first=desc[1]),by=id]
将起作用。谢谢,zx8754,工作得很好。里奇,也谢谢。
library(dplyr)
df %>% 
   group_by(id) %>% 
   summarise(count=n(), desc = first(desc))
#       id count   desc
#      <dbl> <int> <fctr>
#1      1     2     a1
#2      2     3     b1