【发布时间】:2018-09-06 07:07:02
【问题描述】:
在我看来,我想tidyr::gather() 不仅收集列名,还收集第 1 行和第 2 行。我想要实现的是拥有一个 5 列和 4 行的数据框。
这是我正在使用的数据集的一小部分:
library(tidyverse)
# A tibble: 4 x 3
Aanduiding `Coolsingel 40 links` `Goudseweg 15 links`
<chr> <chr> <chr>
1 Gebiedsnummer 1 2
2 Postcode 3011 AD 3031 XH
3 Leefbaar Rotterdam 124 110
4 Partij van de Arbeid (P.v.d.A.) 58 65
及其可重复使用的dput(df):
df <- structure(list(Aanduiding = c("Gebiedsnummer", "Postcode", "Leefbaar Rotterdam",
"Partij van de Arbeid (P.v.d.A.)"), `Coolsingel 40 links` = c("1",
"3011 AD", "124", "58"), `Goudseweg 15 links` = c("2", "3031 XH",
"110", "65")), row.names = c(NA, -4L), class = c("tbl_df", "tbl",
"data.frame"), .Names = c("Aanduiding", "Coolsingel 40 links",
"Goudseweg 15 links"))
所以想要的输出是这样的:
Aanduiding Gebiedsnummer Postcode adres value
<chr> <dbl> <chr> <chr> <dbl>
1 Leefbaar Rotterdam 1.00 3011 AD Coolsingel 40 links 124
2 Leefbaar Rotterdam 1.00 3031 XH Goudseweg 15 links 120
3 Partij van de Arbeid (P.v.d.A.) 2.00 3011 AD Coolsingel 40 links 58.0
4 Partij van de Arbeid (P.v.d.A.) 2.00 3031 XH Goudseweg 15 links 65.0
我经常使用tidyr 包中的gather() 函数,但这总是在我只想收集具有特定值的列名时。现在我实际上想收集列名,但还要观察第 1 行和第 2 行。
我可以在多个键上gather 吗?或者将观察 1 和 2 中的值粘贴到列中,然后是 gather(),然后是 separate()?
如果可能的话,最好的策略是tidyr 方式。
非常感谢。
【问题讨论】:
-
输出会是什么样子?请在您的问题中添加。
-
我编辑了我的问题以显示我想要的输出。
-
@Tdebeus 什么标准/规则以解释的方式划分/排列您的数据?
124、11058等发生了什么? -
此外,您的数据如何扩展到此样本之外 - 是否还有更多
Aanduiding具有相同数量的adres? -
我会使用
t转置而不是gather,但这取决于您如何分辨哪些行成为其他行的列...