用多个键聚集[重复]

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有三个类型的索引,唯一索引 不能有重复,但聚集索引,非聚集索引可以有重复

Python Dictionary交换键:值存在于多个键中时的值对[重复]

BigQuery - 集群表不使用多个键减少查询大小

基于多个值条件打印字典键[重复]

具有相同键的多个条目的字典[重复]