【发布时间】:2018-07-20 10:45:05
【问题描述】:
我有一个数据框,我已经对它进行了分组,然后按多个字段进行了汇总:
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
如何计算发生的单个日期的数量 (_source.time) 并将它们列为一列 (date_count)?
我正在寻找的输出将与
相同> gn$`_source.time` %>% table %>% as.matrix
[,1]
2018-05-14 97
2018-05-15 99
2018-05-16 113
这样每个日期都会计算它在分组数据框中出现的次数。
【问题讨论】:
-
你不能在链的末尾添加一个
%>% mutate(date_count = leads_TRUE + leads_FALSE)吗? -
这行得通,但我需要它首先出现,因为
leads_TRUE和leads_FALSE都出现在我希望列出现的位置之后,它对我不起作用。我知道我可以手动对列重新排序,但是还有其他方法可以即时将其放在正确的位置吗? -
这对你有用吗
%>% add_column(.data = ., date_count = .$leads_TRUE + .$leads_FALSE, .before = 2)? -
您的意思是要使用
n()?这是一个内置在summary中的函数。但是获取日期的数量是一个不同的问题,它不适用于分组数据。
标签: r grouping summarization