美文网首页R语言
tidyverse小技能-数据集的折叠与展开

tidyverse小技能-数据集的折叠与展开

作者: R语言数据分析指南 | 来源:发表于2021-09-08 00:11 被阅读0次

    今天来介绍2个使用的小函数 separate_rows()str_c()

    这2个函数一正一反,separate_rows()作用是将折叠行展开,而str_c()则是将展开行折叠

    separate_rows(df,y, z,convert=TRUE,sep="_")
    下面通过一个具体案例来演示此函数的作用

    创建数据

    df <- tibble(
      x = 1:3,y = c("a", "d_e_f", "g_h"),
      z = c("1", "2", "5"))
    
    df
    
    > df
    # A tibble: 3 x 3
          x y     z    
      <int> <chr> <chr>
    1     1 a     1    
    2     2 d_e_f 2    
    3     3 g_h   5 
    

    将y,z列展开

    只需要指定要展开的列,并且要指定分割符,默认为,

    separate_rows(df,y, z,convert=TRUE,sep="_")
    
    ## # A tibble: 6 x 3
    ##       x y         z
    ##   <int> <chr> <int>
    ## 1     1 a         1
    ## 2     2 d         2
    ## 3     2 e         2
    ## 4     2 f         2
    ## 5     3 g         5
    ## 6     3 h         5
    

    可以看到将折叠的y,z行展开了,separate_rows函数在实际数据分析中有非常广泛的应用;那么实际中有时我们也需要将展开的数据折叠,那么str_c()函数就有了大的作用

    str_c (data , sep="" ,collapse=NULL )

    str_c( )折叠数据集

    separate_rows(df,y, z,convert=TRUE,sep="_") %>%
      group_by(x,z) %>% 
      summarize(y= str_c(y,collapse="_")) %>% ungroup()
    
    # A tibble: 3 x 3
          x     z y    
      <int> <int> <chr>
    1     1     1 a    
    2     2     2 d_e_f
    3     3     5 g_h 
    

    可以看到通过str_c我们又将展开的行折叠了起来

    相关文章

      网友评论

        本文标题:tidyverse小技能-数据集的折叠与展开

        本文链接:https://www.haomeiwen.com/subject/mbqmwltx.html