R语言

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

2021-09-08  本文已影响0人  R语言数据分析指南

今天来介绍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我们又将展开的行折叠了起来

上一篇下一篇

猜你喜欢

热点阅读