【问题标题】:transform employment data in R - from wide to long将 R 中的就业数据转换为从宽到长
【发布时间】:2021-02-12 01:24:15
【问题描述】:

我有以下数据

employed_male; unemployed_male; inactive_male; employed_female; unemployed_female; inactive_female;

我想改成

gender; status; value

例如:

employed_male; unemployed_male; inactive_male; employed_female; unemployed_female; inactive_female;
5;             4;                6;            7;               3;                 1;

将会

gender; status; value
male; employed; 5
male; unemployed; 4
male; inactive; 6
female; employed; 7
female; unemployed; 3
female; inactive; 1

你知道哪个库或方法最能达到这个结果吗?

【问题讨论】:

    标签: r data-visualization data-analysis


    【解决方案1】:

    使用pivot_longer,您可以使用:

    tidyr::pivot_longer(df, 
                        cols = everything(), 
                        names_to = c('status', 'gender'),
                        names_sep = '_')
    
    #  status     gender value
    #  <chr>      <chr>  <int>
    #1 employed   male       5
    #2 unemployed male       4
    #3 inactive   male       6
    #4 employed   female     7
    #5 unemployed female     3
    #6 inactive   female     1
    

    数据

    df <- structure(list(employed_male = 5L, unemployed_male = 4L,inactive_male = 6L,
        employed_female = 7L, unemployed_female = 3L, inactive_female = 1L),
        row.names = c(NA, -1L), class = "data.frame")
    

    【讨论】:

      【解决方案2】:

      tidyr::pivot_longer() 是个不错的选择。见this section of the documentation

      【讨论】:

        猜你喜欢
        • 2016-07-29
        • 1970-01-01
        • 1970-01-01
        • 2023-02-25
        • 1970-01-01
        • 2020-08-11
        • 1970-01-01
        • 1970-01-01
        • 2013-10-22
        相关资源
        最近更新 更多