如何分隔行内的多字符值?

cho*_*oij 3 r dplyr tidyverse

我有这个虚拟输入数据框。(输入数据框无法更改)

data <- data.frame(c('c(a1, a10)'),
                   c('c(b1, b10)'),
                   stringsAsFactors = FALSE)

colnames(data) <- c('A', 'B')
head(data)
#           A          B
#1 c(a1, a10) c(b1, b10)
Run Code Online (Sandbox Code Playgroud)

我想将此数据框转换为下面的数据框。Tidyversedplyr方法会有所帮助。

#    A            B
#1  a1           b1
#2 a10          b10
Run Code Online (Sandbox Code Playgroud)

Ron*_*hah 5

您可以删除角色周围的附加文本并使用separate_rows.

library(dplyr)
library(tidyr)

data %>%
  mutate(across(.fns = ~gsub('c\\(|\\)', '', .))) %>%
  separate_rows(A:B, sep = ',\\s*')

#  A     B    
#  <chr> <chr>
#1 a1    b1   
#2 a10   b10  
Run Code Online (Sandbox Code Playgroud)