在R中,我有一个这样的表格:
tab <- data.frame(col1=c('A','B','C'),
col2=c('after|angle|axe','boss|bike','car|cat|corn'))
col1 col2
1 A after|angle|axe
2 B boss|bike
3 C car|cat|corn
我需要把它变成这样:
col1 col2
1 A after
2 A angle
3 A axe
4 B boss
5 B bike
6 C car
7 C cat
8 C corn
我该怎么做?可能没有循环并且没有外部库吗?
答案 0 :(得分:0)
我们可以使用strsplit
中的base R
lst1 <- strsplit(as.character(tab$col2), "|", fixed = TRUE)
data.frame(col1 = rep(tab$col1, lengths(lst1)), col2 = unlist(lst1))
有了包裹,就更容易了
library(tidyr)
tab %>%
separate_rows(col2)