在R中将行分割

4

我想在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 包 (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

这个回答解决了你的问题吗?将列中逗号分隔的字符串拆分为单独的行 - Cole
这是一个看起来不错的问题,但似乎是重复的。https://dev59.com/Q2Up5IYBdhLWcg3wVWcG - Cole
1个回答

3

其中一种选择是使用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")
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接