我有一个数据集,如下所示:
data <- tribble(
~id, ~click, ~engagement,
1, 1, 0,
2, 2, 3,
3, 3, 5,
4, 4, 6,
5, 5, 2,
6, 3, 4,
7, 8, 7,
8, 6, 1,
9, 7, 6,
10, 7, 3,
)
我想要的数据是这样的:
new_data <- tribble(
~total_click, ~total_engagement, ~percantage_click, ~percantage_engagement,
46, 37, 0.5542169, 0.4457831,
)
通过这样的编码,我能够获得total_click和total_engagement:
data %>%
summarise(total_click = sum(click), total_engagement = sum(engagement))
如何获得百分比?
答案 0 :(得分:5)
怎么样?
data %>%
summarise(total_click = sum(click), total_engagement = sum(engagement),
percantage_click=total_click/(total_click+total_engagement),
percantage_engagement=1- percantage_click)
数据:
data <- tribble(
~id, ~click, ~engagement,
1, 1, 0,
2, 2, 3,
3, 3, 5,
4, 4, 6,
5, 5, 2,
6, 3, 4,
7, 8, 7,
8, 6, 1,
9, 7, 6,
10, 7, 3,
)
答案 1 :(得分:3)
data %>%
summarize_at(vars(-id), sum) %>%
mutate(click_p = click/(click + engagement),
engagement_p = 1 - click_p)
## A tibble: 1 x 4
# click engagement click_p engagement_p
# <dbl> <dbl> <dbl> <dbl>
#1 46 37 0.554 0.446
答案 2 :(得分:2)
我们也可以这样:
data %>%
summarise_at(vars(-id), list(sum)) %>%
bind_cols(. / rowSums(.))