【发布时间】:2019-01-09 16:02:47
【问题描述】:
我有一个包含 4 列数据的数据框:url ID、url、title 和 pageviews,如下所示:
ID url title pageviews
1 /12/ /url-1/ Page 1 1123
2 /13/ /url-2/ Page 2 4432
3 /13/ /url-2/?test Page 2 6
4 /14/ /url-4/ Page 4 4242
我花了很长时间寻找如何合并具有相同ID 的行(页面)并将pageviews 相加。我最终得到了这段代码,使用 dplyr:
df_merged <- df %>% group_by(ID) %>% summarise_at(c("pageviews"), sum)
但是,它会创建另一个只有 ID 和综合浏览量的数据框。我想实现一个完整的数据框,再次使用url 和title。像这样的:
ID url title pageviews
1 /12/ /url-1/ Page 1 1123
2 /13/ /url-2/ Page 2 4438
3 /14/ /url-4/ Page 4 4242
我怎样才能达到这个结果?
这是我的数据框:
df <- data.frame(ID = c("/12/", "/13/", "/13/", "/14/"),
url = c("/url-1/", "/url-2/", "/url-2/?test", "/url-4/"),
title = c("Page 1", "Page 2", "Page 2", "Page 4"),
pageviews = c(1123, 4432, 6, 4242))
【问题讨论】:
-
df %>% group_by(ID) %>% summarise(sum = sum(pageviews))?不知道你是如何决定保留/url-2/而不是/url-2/?test为ID13。 -
我没有,这是我想要返回的示例。但是Curt F. 建议使用
first()(很好的答案)