我开始使用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添加到我的管道吗?
感谢您的帮助
答案 0 :(得分:1)
我们可以按操作进行分组,然后summarise
paste
将“年份”放在一起(toString
是paste(..., collapse=", ")
的包装)
dataset %>%
group_by(city, values) %>%
summarise(n = n(), year = toString(year))
或者,如果我们想要第二个选项,在按操作分组后,按n()
字符串'year'创建行数(paste
)和序列列{{1}然后执行row_number()
将其转换为'wide'格式
spread