tidyr ::从不同类型的多组列中收集观察结果

时间:2016-03-21 13:58:59

标签: r reshape2 tidyr melt

如何将具有不同类型列的“宽”格式的数据集转换为“长”格式,如下例所示?最好使用tidyr(和dplyr等)或一些同样简单的语法。

d_wide <- data.frame(
             pair_id=1:3,
             name_wife=c('Ana','Maria','Kely'),blood_type_wife=c('A','B','C'), age_wife=c(34,21,55),
             name_husb=c('Bob','Peter','John'),blood_type_husb=c('B','O','A'), age_husb=c(31,24,60)
          )

d_long <- data.frame(
             pair_id=c(1,1,2,2,3,3),
             role=c('wife','husb','wife','husb','wife','husb'),
             name=c('Ana','Bob','Maria','Peter','Kely','John'),
             blood=c('A','B','B','O','C','A'), 
             age=c(34,31,21,24,55,60)
          ) 

OBS:其他相关的SO问题,例如this,涉及相同类型的列集,全部为数字。然后,这些问题的答案涉及将数据收集(融化)成“超长”格式并传播回所需的长格式。这在这里不起作用,因为变量是不同类型的,因此它们不能用超长格式的相同“值”列表示。

0 个答案:

没有答案