用多个键聚集[重复]
Posted
技术标签:
【中文标题】用多个键聚集[重复]【英文标题】:gather with multiple keys [duplicate] 【发布时间】:2017-06-13 07:48:33 【问题描述】:我知道以前有人问过这个问题,但我不太明白。
我有一个如下所示的数据集:
Precinct Crime 2000 2001 2002 2003
1 Murder 3 1 2 2
1 Rape 12 5 10 11
1 Burglary 252 188 297 403
2 Murder 4 2 1 0
每年列出的每项罪行的价值。
我正在尝试将其重新排列成更简单的集合,如下所示:
Precinct Crime Year Value
1 Murder 2000 3
1 Rape 2000 12
我该怎么做呢?我知道我应该使用 tidyr 的 gather
,但是为多个键外推解决方案对我不起作用。
【问题讨论】:
只要使用gather(df1, Year, Value, 3:ncol(df1))
> 与现有问题完全相同 如果措辞不同,这并不完全相同。实际上恰恰相反。他不是要从一个宽格式转到一个宽格式。这可以通过 tiddy:gather 来完成。
【参考方案1】:
以下作品:
df %>% gather(Year, Value, -Precinct, -Crime)
【讨论】:
奇怪:为什么这个完美有效的最佳实践答案被否决了?【参考方案2】:您需要指定所有应该被收集的列(或删除所有应该_不_被收集的列):
library(tidyverse)
dat <- tibble::tibble(
Precinct = c(1, 1, 1, 2),
Crime = c("Murder", "Rape", "Burglary", "Murder"),
`2000` = c(3, 12, 252, 4),
`2001` = c(1, 5, 188, 2),
`2002` = c(2, 10, 297, 1),
`2003` = c(2, 11, 403, 0)
)
tidyr::gather(dat, Year, Value, 3:6)
tidyr::gather(dat, Year, Value, -Precinct, -Crime)
【讨论】:
妈的,我太慢了! 是的。保持正确没有意义?以上是关于用多个键聚集[重复]的主要内容,如果未能解决你的问题,请参考以下文章
SQL有三个类型的索引,唯一索引 不能有重复,但聚集索引,非聚集索引可以有重复