首页 > 解决方案 > 将数据从宽变长

问题描述

请帮助我解决以下问题,我有一个需要重塑的宽数据框。
这是我的df

mydf <- data.frame(date=1983:1985,January=c(5,7,8),February=c(12,18,19))  
mydf

这是我需要的输出

output <- data.frame(date=rep(c(1983,1984,1985),each=2),Month=rep(c("January","February"),3),Value=c(5,12,7,18,8,19))
output

标签: rreshape

解决方案


使用melt来自reshape2

reshape2::melt(mydf, id.vars = "date", measure.vars = c("January", "February"), variable.name = "Month", value.name = "Value")

 #  date    Month Value
 #1 1983  January     5
 #2 1984  January     7
 #3 1985  January     8
 #4 1983 February    12
 #5 1984 February    18
 #6 1985 February    19

推荐阅读