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