我想将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
答案 0 :(得分:4)
一个选项是separate_rows
和sep = "\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")
)