簡體   English   中英

如何在 R 中將分層數據(從超過 20/20)從部分寬格式轉換為長格式?

[英]How to transform hierarchical data (from Beyond 20/20) from a partially wide format to long format in R?

我有一些從 Beyond 20/20 導出的人口普查數據,部分是長格式,部分是寬格式。 我正在為如何重新格式化數據而苦苦掙扎,因為它並不完全是寬格式。 在下面的數據集中,有每個教育級別和 state 的男性和女性人數。 例如:

> have
  State Education Male Female
1    CA         1    3      4
2    CA         2    4      6
3    NV         1    7      8
4    NV         2    9     19

但是,我希望數據是完全長格式的。 這意味着擁有每個獨特的 state、教育和性別類別中的個體數量。 例如:

> want
  State Education    Sex Number
1    CA         1   Male      4
2    CA         1 Female      3
3    CA         2   Male      4
4    CA         2 Female      6
5    NV         1   Male      7
6    NV         1 Female      8
7    NV         2   Male      9
8    NV         2 Female     19

提前感謝您的任何想法或建議。

我們可以使用來自pivot_longer tidyr的 pivot_longer:

library(tidyr)
library(dplyr)
df %>% 
  pivot_longer(
    cols=c(Male, Female),
    names_to = "Sex", 
    values_to = "Number"
  )

  State Education Sex    Number
  <chr>     <int> <chr>   <int>
1 CA            1 Male        3
2 CA            1 Female      4
3 CA            2 Male        4
4 CA            2 Female      6
5 NV            1 Male        7
6 NV            1 Female      8
7 NV            2 Male        9
8 NV            2 Female     19

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM