用多个键收集
gather with multiple keys
我知道以前有人问过这个问题,但我不太明白。
我有一个如下所示的数据集:
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
,但是针对多个键的外推解决方案对我不起作用。
以下作品:
df %>% gather(Year, Value, -Precinct, -Crime)
您需要指定应收集的所有列(或删除应 _not_be 收集的所有列):
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)
我知道以前有人问过这个问题,但我不太明白。
我有一个如下所示的数据集:
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
,但是针对多个键的外推解决方案对我不起作用。
以下作品:
df %>% gather(Year, Value, -Precinct, -Crime)
您需要指定应收集的所有列(或删除应 _not_be 收集的所有列):
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)