首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-将具有重复日期的名称合并到一行中

R-将具有重复日期的名称合并到一行中
EN

Stack Overflow用户
提问于 2018-09-26 05:52:16
回答 3查看 47关注 0票数 1

我有一个这样的数据框架:

代码语言:javascript
复制
data.frame(name = c("a", "b", "c", "d"),
           date = c("2018-09", "2018-10", "2018-9", "2018-11"))

我想要将任何与另一个名称共享日期的名称组合成一行,用逗号分隔,第二列显示它们共享的日期

代码语言:javascript
复制
data.frame(name = c("a,c", "b", "d"),
           date = c("2018-09", "2018-10", "2018-11"))
EN

回答 3

Stack Overflow用户

发布于 2018-09-26 05:59:12

我假设你的样本数据中不同的日期格式是真实的,也就是说,你的数据中"2018-09" "2018-9" 和对应于同一个month+year。

在这种情况下,您可以执行以下操作

代码语言:javascript
复制
df %>%
    mutate(date = as.Date(paste0(date, "-01"), "%Y-%m-%d")) %>%
    group_by(date) %>%
    summarise(name = toString(name)) %>%
    mutate(date = format(date, format = "%Y-%m"))
#    # A tibble: 3 x 2
#  date    name
#  <chr>   <chr>
#1 2018-09 a, c
#2 2018-10 b
#3 2018-11 d

样本数据

代码语言:javascript
复制
df <- data.frame(name = c("a", "b", "c", "d"),
       date = c("2018-09", "2018-10", "2018-9", "2018-11"))
票数 1
EN

Stack Overflow用户

发布于 2018-09-26 05:55:56

您可以在dplyr中使用group_bysummarize完成此操作。

由于您正在处理日期,因此重要的是将它们转换为标准格式(在您的示例中没有),这样相同的日期就被认为是相同的。

在我看来,lubridate包是实现这一点的最简单方法。在下面的示例中,我们将date变量解析为一个4位数的年份Y和十进制月份m,然后按照与前面相同的日期进行分组:

代码语言:javascript
复制
df2 <- data.frame(name = c("a", "b", "c", "d"),
           date = c("2018-09", "2018-10", "2018-9", "2018-11"))
df2 %>%
    mutate(date = lubridate::parse_date_time(date, 'Ym')) %>%
    group_by(date) %>%
    summarise(name = paste0(name, collapse = ','))

# A tibble: 3 x 2
  date                name 
  <dttm>              <chr>
1 2018-09-01 00:00:00 a,c  
2 2018-10-01 00:00:00 b    
3 2018-11-01 00:00:00 d    
票数 0
EN

Stack Overflow用户

发布于 2018-09-26 05:59:00

使用@divibisan答案中的R基础aggregatedf

代码语言:javascript
复制
> aggregate(name~date, data=df,  paste, collapse = ",")
     date name
1 2018-09  a,c
2 2018-10    b
3 2018-11    d
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52507166

复制
相关文章

相似问题

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