如何识别属于每个组的记录,同时汇总以获得R中的计数

如何识别属于每个组的记录,同时汇总以获得R中的计数,r,dataframe,group-by,dplyr,plyr,R,Dataframe,Group By,Dplyr,Plyr,我想对2个给定列执行groupby,计算这些组中的行数,并存储属于每个组的行(ID) 下面帮助我分组并获得计数 set.seed(1000) df <- data.frame(col1= sample(c(1:15), 15, replace = F), col2=sample(c("aa", "bb","cc"), 15, replace=TRUE), col3=sample(c('a','b','c','d'), 15, replace=TRUE, prob=c(0.25, 0.

我想对2个给定列执行groupby,计算这些组中的行数,并存储属于每个组的行(ID)

下面帮助我分组并获得计数

set.seed(1000)
df <- data.frame(col1= sample(c(1:15), 15, replace = F),
col2=sample(c("aa", "bb","cc"), 15, replace=TRUE),
col3=sample(c('a','b','c','d'), 15, replace=TRUE,    prob=c(0.25, 0.25, 0.20, 0.30)))

View(df)
set.seed(1000)
df%
总结(n=n())


如果col1存储了行ID,那么跟踪属于每个组的所有行ID的正确方法是什么?

我知道您现在要做什么了。试试这个:

library(dplyr)
set.seed(1000)
df <- data.frame(col1= sample(c(1:15), 15, replace = F),
                 col2=sample(c("aa", "bb","cc"), 15, replace=TRUE),
                 col3=sample(c('a','b','c','d'), 15, replace=TRUE,
                              prob=c(0.25, 0.25, 0.20, 0.30)))


grp<-df %>%
  group_by(col2, col3) %>%
  summarise(n=n(), rows=paste(col1, collapse = ", "))
grp

col2   col3     n               rows
(fctr) (fctr) (int)              (chr)
aa      b     6 5, 1, 15, 13, 8, 3
aa      c     1                  9
bb      a     3           6, 12, 4
bb      b     1                  2
bb      d     1                 11
cc      c     1                 14
cc      d     2              7, 10

我知道你现在在追求什么。试试这个:

library(dplyr)
set.seed(1000)
df <- data.frame(col1= sample(c(1:15), 15, replace = F),
                 col2=sample(c("aa", "bb","cc"), 15, replace=TRUE),
                 col3=sample(c('a','b','c','d'), 15, replace=TRUE,
                              prob=c(0.25, 0.25, 0.20, 0.30)))


grp<-df %>%
  group_by(col2, col3) %>%
  summarise(n=n(), rows=paste(col1, collapse = ", "))
grp

col2   col3     n               rows
(fctr) (fctr) (int)              (chr)
aa      b     6 5, 1, 15, 13, 8, 3
aa      c     1                  9
bb      a     3           6, 12, 4
bb      b     1                  2
bb      d     1                 11
cc      c     1                 14
cc      d     2              7, 10

是否要按组单独列出行ID?我这样问是因为,如果
df[,1]
已经存储了行ID,并且
df[,3]
df[,2]
是明确的,那么您的
df
结构中是否已经存储了这些信息?是的,这就是要求:按组分别列出行ID请提供一个可复制的示例,请检查现在是否可以。是否要按组单独列出行ID?我这样问是因为,如果
df[,1]
已经存储了行ID,并且
df[,3]
df[,2]
是明确的,那么您的
df
结构中是否已经存储了这些信息?是的,这就是要求:按组分别列出行ID请提供一个可复制的示例,请检查一下现在是否可以非常感谢布莱恩:)非常感谢布莱恩:)
rowsByGrp<-grp$rows 
rows.list<-lapply(1:length(rowsByGrp), function(x) rowsByGrp[x])
names(rows.list)<-paste(grp$col2 , grp$col3, sep = "_")
rows.list  

    $aa_b
[1] "5, 1, 15, 13, 8, 3"

$aa_c
[1] "9"

$bb_a
[1] "6, 12, 4"

$bb_b
[1] "2"

$bb_d
[1] "11"

$cc_c
[1] "14"

$cc_d
[1] "7, 10"