在R中划分行

时间:2019-12-01 15:39:17

标签: r dplyr tidyverse tidyr

我想将R中的行划分为某些列。在我的示例中,我想在每次有\n时创建一个新行。

有什么想法吗?最好是,我想使用tidyverse来做到这一点。

代表:

library(dplyr)

tibble(
  x = c("Row 1", "Row 2\nRow 3", "Row 4"),
  y = c("Value 1", "Value 2\nValue 3", "Value 4")
)
#> # A tibble: 3 x 2
#>   x              y                 
#>   <chr>          <chr>             
#> 1 Row 1          Value 1           
#> 2 "Row 2\nRow 3" "Value 2\nValue 3"
#> 3 Row 4          Value 4

reprex package(v0.3.0)于2019-12-01创建

所需的输出

#> # A tibble: 4 x 2
#>   x     y
#>   <chr> <chr>                                          
#> 1 Row 1 Value 1                                        
#> 2 Row 2 Value 2                                        
#> 3 Row 3 Value 3                                        
#> 4 Row 4 Value 4

1 个答案:

答案 0 :(得分:4)

一个选项是separate_rowssep = "\n"

library(dplyr)
library(tidyr)
df1 %>%
   separate_rows(x, y, sep = "\n")
# A tibble: 4 x 2
#  x     y      
#  <chr> <chr>  
#1 Row 1 Value 1
#2 Row 2 Value 2
#3 Row 3 Value 3
#4 Row 4 Value 4

数据

df1 <- tibble(
  x = c("Row 1", "Row 2\nRow 3", "Row 4"),
  y = c("Value 1", "Value 2\nValue 3", "Value 4")
)