r-如何传播与strsplit结合的tibble



我需要扩展一个tibble,其中一列有许多元素要拆分,但它们的长度不相同。我把原始样本和预测结果放在下面。谢谢

a;b;c | 2016
d;e  | 2019

将其转换为:

a | 2016
b | 2016
c | 2016
d | 2019
e | 2019 

也许使用strsplit并将Mapdata.framerbind一起使用结果:

do.call(rbind, Map(data.frame, a=strsplit(x$a, ";", TRUE), b=x$b))
#  a    b
#1 a 2016
#2 b 2016
#3 c 2016
#4 d 2019
#5 e 2019

y <- strsplit(x$a, ";", TRUE)
data.frame(a = unlist(y), b = rep(x$b, lengths(y)))
#  a    b
#1 a 2016
#2 b 2016
#3 c 2016
#4 d 2019
#5 e 2019

数据:

x <- data.frame(a = c("a;b;c", "d;e"), b = c(2016, 2019))

tidyverse溶液

样本数据

x <- data.frame(a = c("a;b;c", "d;e"), b = c(2016, 2019))

代码

tidyr::separate_rows(x, a, sep = ";")

输出

# # A tibble: 5 x 2
#   a         b
#   <chr> <dbl>
# 1 a      2016
# 2 b      2016
# 3 c      2016
# 4 d      2019
# 5 e      2019

相关内容

  • 没有找到相关文章

最新更新