【发布时间】:2021-04-30 22:15:07
【问题描述】:
所以我有一个如下所示的数据框:
datInput <- tibble(id = 1:2,
c.0.opt = c("a,b", "c,d"),
c.0.optI = c("1,2", "3,4"),
c.0.sel = c("a", "c"),
c.1.opt = c("e,f", "g,h"),
c.1.optI = c("5,6", "7,8"),
c.1.sel = c("e", "g"))
datInput
# id c.0.opt c.0.optI c.0.sel c.1.opt c.1.optI c.1.sel
#1 1 a,b 1,2 a e,f 5,6 e
#2 2 c,d 3,4 c g,h 7,8 g
我需要它看起来像这样:
datOutput <- tibble(id = c(1,1,2,2),
c_opt = c("a,b", "e,f", "c,d", "g,h"),
c_optI = c("1,2", "5,6", "3,4", "7,8"),
c_sel = c("a", "e", "c", "g"))
# id c_opt c_optI c_sel
#1 1 a,b 1,2 a
#2 1 e,f 5,6 e
#3 2 c,d 3,4 c
#4 2 g,h 7,8 g
我通常使用dplyr::pivot_longer 来处理这类任务,但我不知道如何处理那些复杂的列名,如果行标识符在中间的话。有没有办法做到这一点?
谢谢
【问题讨论】: