R:将行拆分为不同的行

时间:2018-04-19 03:37:54

标签: r dataframe split row

假设我有一个如下数据框:

> mydf <- data.frame(a=c('A','B','C','D/E','F','G/H','I/J','K','L'), b=c(1,2,3,'4/5',6,'7/8','9/10',11,12))
> mydf
    a    b
1   A    1
2   B    2
3   C    3
4 D/E  4/5
5   F    6
6 G/H  7/8
7 I/J 9/10
8   K   11
9   L   12

如何使用简单的单线(最好是底座)使其看起来如下所示?感谢

> mydf2
     a    b
1    A    1
2    B    2
3    C    3
4    D    4
5    E    5
6    F    6
7    G    7
8    H    8
9    I    9
10   J   10
11   K   11
12   L   12

1 个答案:

答案 0 :(得分:2)

您可以使用separate_rows

中的tidyr
library(tidyr)
mydf <- data.frame(a=c('A','B','C','D/E','F','G/H','I/J','K','L'), b=c(1,2,3,'4/5',6,'7/8','9/10',11,12))
mydf

#>     a    b
#> 1   A    1
#> 2   B    2
#> 3   C    3
#> 4 D/E  4/5
#> 5   F    6
#> 6 G/H  7/8
#> 7 I/J 9/10
#> 8   K   11
#> 9   L   12

separate_rows(mydf, a, b, convert = TRUE)

#>    a  b
#> 1  A  1
#> 2  B  2
#> 3  C  3
#> 4  D  4
#> 5  E  5
#> 6  F  6
#> 7  G  7
#> 8  H  8
#> 9  I  9
#> 10 J 10
#> 11 K 11
#> 12 L 12

reprex package(v0.2.0)创建于2018-04-18。