首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dplyr合并R中的数据帧行

使用dplyr合并R中的数据帧行
EN

Stack Overflow用户
提问于 2018-08-02 09:06:07
回答 1查看 1.1K关注 0票数 1

我有一个包含4列数据的数据框:url IDurltitlepageviews,如下所示:

代码语言:javascript
复制
    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编写了以下代码:

代码语言:javascript
复制
df_merged <- df %>% group_by(ID) %>% summarise_at(c("pageviews"), sum)

但是,它会创建另一个仅包含ID和页面视图的数据框。我想实现一个完整的数据帧,再次使用urltitle。如下所示:

代码语言:javascript
复制
    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

怎样才能达到这样的效果呢?

这是我的数据框:

代码语言:javascript
复制
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))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-02 09:20:48

一种方法是这样做:

代码语言:javascript
复制
df_merged <- 
       df %>% 
       group_by(ID, title) %>% 
       summarise(url = first(url),
                 total_pageviews = sum(pageviews)
                )

您需要考虑R如何知道在第2页的情况下url的期望输出是/url-2/,而不是/url-2/?test或其他什么。在这里,我随意决定要放在那里的值是出现在组中的first()值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51644188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档