R 如何计算和列出分组值在同一组中出现的次数?
我有一个数据框架,我对其进行了分组,然后通过多个字段进行了总结:R 如何计算和列出分组值在同一组中出现的次数?,r,grouping,summarization,R,Grouping,Summarization,我有一个数据框架,我对其进行了分组,然后通过多个字段进行了总结: gn %>% group_by(`_source.time`) %>% summarize( leads_TRUE = sum(`_source.lead` == TRUE), leads_FALSE = sum(`_source.lead` == FALSE), leads_T_conv = sum(leads_TRUE) / nrow(gn), leads_F_conv =
gn %>%
group_by(`_source.time`) %>%
summarize(
leads_TRUE = sum(`_source.lead` == TRUE),
leads_FALSE = sum(`_source.lead` == FALSE),
leads_T_conv = sum(leads_TRUE) / nrow(gn),
leads_F_conv = sum(leads_FALSE) / nrow(gn),
overall_conv = sum(leads_T_conv + leads_F_conv) / 2
) %>%
ungroup()
这给了我:
# A tibble: 64 x 6
`_source.time` leads_TRUE leads_FALSE leads_T_conv leads_F_conv overall_conv
<date> <int> <int> <dbl> <dbl> <dbl>
1 2018-05-14 8 89 0.00161 0.0179 0.0587
2 2018-05-15 31 68 0.00623 0.0137 0.0587
3 2018-05-16 28 85 0.00563 0.0171 0.0587
这样,每个日期将有一个计数,它在分组数据框中出现了多少次。您可以使用
n\u distinct
:
iris %>% group_by(round(Sepal.Length)) %>% summarize(n=n_distinct(Species))
# A tibble: 5 x 2
# `round(Sepal.Length)` n
# <dbl> <int>
# 1 4 1
# 2 5 3
# 3 6 3
# 4 7 2
# 5 8 1
iris%>%分组依据(圆形(萼片长度))%>%总结(n=n不同的(种))
#一个tibble:5x2
#'圆形(萼片长度)`n
#
# 1 4 1
# 2 5 3
# 3 6 3
# 4 7 2
# 5 8 1
你能不能只添加一个%%>%的变异(date\u count=leads\u TRUE+leads\u FALSE)
添加你链的末端?这很有效,但我需要它首先出现,因为leads\u TRUE
和leads\u FALSE
都出现在我希望列出现的位置之后,这对我不起作用。我知道我可以手动对列重新排序,但是有没有其他方法可以让它在正确的位置运行呢?这对您有效吗?添加列(.data=,date\u count=。$leads\u TRUE+。$leads\u FALSE,.before=2)?您的意思是要使用n()
?这是Summary内置的一个函数。但是获取日期的数量是另一个问题,它不适用于分组数据。
iris %>% group_by(round(Sepal.Length)) %>% summarize(n=n_distinct(Species))
# A tibble: 5 x 2
# `round(Sepal.Length)` n
# <dbl> <int>
# 1 4 1
# 2 5 3
# 3 6 3
# 4 7 2
# 5 8 1