我已经看过this,this和this但仍然不知道如何在tidyr::spread()
函数中解决以下问题。< / p>
这是我的示例数据框:
libary(tidyverse)
df <- structure(list(Jaar = c(2014L, 2018L), Gemeente = c("Stichtse Vecht",
"Stichtse Vecht"), GMcode = c("GM1904", "GM1904"), Partij = c("VVD",
"VVD"), Aantal_stemmen = c(4347L, 0L)), .Names = c("Jaar", "Gemeente",
"GMcode", "Partij", "Aantal_stemmen"), row.names = c(NA, -2L), class = c("tbl_df",
"tbl", "data.frame"))
结果:
# A tibble: 2 x 5
Jaar Gemeente GMcode Partij Aantal_stemmen
<int> <chr> <chr> <chr> <int>
1 2014 Stichtse Vecht GM1904 VVD 4347
2 2018 Stichtse Vecht GM1904 VVD 0
当我运行以下代码时,我没有得到所需的一行,但是有两张NA&#39;
df %>%
rowid_to_column() %>% # Without this in my original dataframe I'll get an error: Error: Duplicate identifiers for rows
spread(Jaar, Aantal_stemmen)
结果:
# A tibble: 5,938 x 6
rowid Gemeente GMcode Partij `2014` `2018`
<int> <chr> <chr> <chr> <int> <int>
1 1 Stichtse Vecht GM1904 VVD 4347 NA
2 2 Stichtse Vecht GM1904 VVD NA 0
答案 0 :(得分:2)
我不确定你想要什么,因为你没有提供想要的输出。我希望以下内容对您有所帮助。
对rowid_to_column
的调用会生成一个包含2行的列。这就是它打算做的事情。删除它可以解决您的问题:
df %>%
# rowid_to_column() %>%
spread(Jaar, Aantal_stemmen)
给出了
# A tibble: 1 x 5
Gemeente GMcode Partij `2014` `2018`
<chr> <chr> <chr> <int> <int>
1 Stichtse Vecht GM1904 VVD 4347 0
请告诉我这是否是你想要的。