列表中的R dplyr计数

列表中的R dplyr计数,r,list,R,List,我不知道如何在列表对象中正确地计数(或表) 因此,我的列表名为v,它有3个元素,是否可以避免执行以下操作 library(dplyr) v[[1]] %>% count(group, variable, value) v[[2]] %>% count(group, variable, value) v[[3]] %>% count(group, variable, value) 使用表的问题是,我必须对几个变量进行分组(这里是分组,变量和值) 带有表的解决方案,这不是很好

我不知道如何在
列表
对象中正确地
计数
(或

因此,我的
列表
名为
v
,它有3个元素,是否可以避免执行以下操作

library(dplyr) 

v[[1]] %>% count(group, variable, value)
v[[2]] %>% count(group, variable, value)
v[[3]] %>% count(group, variable, value)
使用
的问题是,我必须对几个变量进行分组(这里是
分组
变量

带有
表的解决方案
,这不是很好的输出

ft = function(x) table(x)
v %>% lapply(ft)
需要的输出量

[[1]] # list 1
 group variable value     n
  1       V1 FALSE     1
  1       V1  TRUE     2
  1       V2 FALSE     2
  1       V2  TRUE     1
  ... 

 [[2]] # list 2 
 group variable value     n
  1       V1 FALSE     1
  1       V1  TRUE     2
  1       V2 FALSE     3
  1       V2  TRUE     3
... 

# and so on # 
生成数据

library(purrr) 
library(reshape2) 

v = list('vector', 3)

for(i in 1:3){
  dt = replicate(10, rbernoulli(9)) %>% as.data.frame() 
  dt$group = rep(1:3, 3)
  v[[i]] = dt %>% melt(id.vars = 'group')
}

我们可以使用
purr

library(dplyr)
library(purrr)
v %>%
   map(~count(., group, variable, value))
#[[1]]
#Source: local data frame [56 x 4]
#Groups: group, variable [?]

#   group variable value     n
#   <int>   <fctr> <lgl> <int>
#1      1       V1 FALSE     1
#2      1       V1  TRUE     2
#3      1       V2 FALSE     2
#4      1       V2  TRUE     1
#5      1       V3 FALSE     3
#6      1       V4 FALSE     1
#7      1       V4  TRUE     2
#8      1       V5  TRUE     3
#9      1       V6 FALSE     2
#10     1       V6  TRUE     1
#..   ...      ...   ...   ...

#[[2]]
#Source: local data frame [49 x 4]
#Groups: group, variable [?]

#   group variable value     n
#   <int>   <fctr> <lgl> <int>
#1      1       V1 FALSE     3
#2      1       V2 FALSE     2
#3      1       V2  TRUE     1
#4      1       V3 FALSE     2
#5      1       V3  TRUE     1
#6      1       V4  TRUE     3
#7      1       V5  TRUE     3
#8      1       V6 FALSE     1
#9      1       V6  TRUE     2
#10     1       V7 FALSE     1
#..   ...      ...   ...   ...

#[[3]]
#Source: local data frame [54 x 4]
#Groups: group, variable [?]

#   group variable value     n
#   <int>   <fctr> <lgl> <int>
#1      1       V1  TRUE     3
#2      1       V2 FALSE     2
#3      1       V2  TRUE     1
#4      1       V3 FALSE     2
#5      1       V3  TRUE     1
#6      1       V4  TRUE     3
#7      1       V5 FALSE     1
#8      1       V5  TRUE     2
#9      1       V6 FALSE     2
#10     1       V6  TRUE     1
#..   ...      ...   ...   ...
库(dplyr)
图书馆(purrr)
v%>%
映射(~计数(、组、变量、值))
#[[1]]
#来源:本地数据帧[56 x 4]
#组:组,变量[?]
#组变量值n
#        
#1 V1假1
#2 1 V1真2
#3 1 V2假2
#4 1 V2真1
#5 1 V3错误3
#6 1 V4假1
#7 1 V4真实2
#8 1 V5 3
#9 1 V6 FALSE 2
#10 1 V6真1
#..   ...      ...   ...   ...
#[[2]]
#来源:本地数据帧[49 x 4]
#组:组,变量[?]
#组变量值n
#        
#1 V1假3
#2 1 V2假2
#3 1 V2真1
#4 1 V3假2
#5 1 V3真1
#6 1 V4真实3
#7 1 V5 3
#8 1 V6错误1
#9 1 V6真实2
#10 1 V7 FALSE 1
#..   ...      ...   ...   ...
#[[3]]
#来源:本地数据帧[54 x 4]
#组:组,变量[?]
#组变量值n
#        
#1 V1真3
#2 1 V2假2
#3 1 V2真1
#4 1 V3假2
#5 1 V3真1
#6 1 V4真实3
#7 1 V5错误1
#8 1 V5真实2
#9 1 V6 FALSE 2
#10 1 V6真1
#..   ...      ...   ...   ...

注:在
purr_0.2.1
purr_0.2.2
中工作的替代方案为
lappy

v %>% lapply(count, group, variable, value)
甚至更短:

lapply(v, count, group, variable, value)

好的,甚至更短:
lappy(v,count,group,variable,value)
。在这种情况下,管道是不必要的,除非管道序列中有更多的函数调用。是的,对不起,我一直认为Hadley'suite包含在
dplyr
中,但确实也有
reforme2
中!为什么有2票被否决?