如何在R中选择具有特定日期的第二行

时间:2018-06-27 05:52:12

标签: r date dataframe vector character

我有一个数据集,其中包含特朗普的日程安排作为字符向量,以及日期向量。但是,有些日子有多个时间表。

我想将每个日期的所有时间表合并为一个日期的chr时间表。我该怎么办?

示例包含少量样本数据:

chr <- c("please", "help", "me", "god")
date <- c("2018-06-26, "2018-06-26", "2018-06-27", "2018-06-28)
my_current_df <- data.frame(chr,date)

intended_vector <- c("please help", "me", "god")
intended_df <- data.frame(intended_vector,date)

编辑:问题已解决!多谢!

2 个答案:

答案 0 :(得分:2)

我们可以尝试使用aggregate作为基本R选项:

chr <- c("please", "help", "me", "god")
date <- c("2018-06-26", "2018-06-26", "2018-06-27", "2018-06-28")
df <- data.frame(chr, date)

aggregate(data=df, chr~date, FUN = function(t) paste(t))

        date          chr
1 2018-06-26 please, help
2 2018-06-27           me
3 2018-06-28          god

Demo

答案 1 :(得分:2)

另一个选择是使用dplyr

chr <- c("please", "help", "me", "god") 
date <- c("2018-06-26", "2018-06-26", "2018-06-27", "2018-06-28")
df <- data.frame(chr, date)
library(dplyr)
df %>% group_by(date) %>%
  summarize(chr = trimws(paste0(chr, " ", collapse = '')))

这将返回您想要的输出:

# A tibble: 3 x 2
  date       chr        
  <fct>      <chr>      
1 2018-06-26 please help
2 2018-06-27 me         
3 2018-06-28 god