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