整理数据:分组值和保持日期

tidying data: grouping values and keeping dates

我从用于数据操作和重塑的 dplyr / tidyr 包开始。

city <- c("Brest", "Brest", "Rennes", "Rennes", "Rennes") 
year<- c(2014, 2015, 2013, 2012, 2016) 
values <- c(100, 100, 110, 95, 95) 

# Création du data.frame
dataset <- data.frame(city, year, values)  
dataset

这是我的数据集:

city    year    value
Brest   2014    100     
Brest   2015    100     
Rennes  2013    110     
Rennes  2012    95      
Rennes  2016    95  

我在做什么:

demo <- dataset %>%
    count(city, values) %>%
    arrange(city)

...我的结果:

 city   value  n. of obs
 Brest  100     2       
 Rennes 95      2       
 Rennes 110     1   

我期望的是:

第一个选项:

  city   value  n. of obs      year
  Brest     100     2          2014, 2015
  Rennes    95      2          2012, 2016
  Rennes    110     1          2013

第二个选项:

  city   value  n. of obs   year1    year 2
  Brest     100     2       2014     2015
  Rennes    95      2       2012     2016
  Rennes    110     1       2013

我可以通过向我的管道添加 mutate 来做到这一点吗?

感谢您的帮助

我们可以通过操作进行分组,然后通过 paste 将 'year' 组合在一起来 summarisetoStringpaste(..., collapse=", ") 的包装器)

dataset %>%
      group_by(city, values) %>%
      summarise(n = n(), year = toString(year))

或者如果我们想要第二个选项,在 group by 操作之后,通过 pasteing 字符串 'year' 创建行数 (n()) 和序列列row_number() 然后执行 spread 将其转换为 'wide' 格式

dataset %>% 
     group_by(city, values) %>% 
     mutate(n = n(), i1 = paste0("year", row_number()))  %>%
     spread(i1, year)