r - 将数据从宽变长
问题描述
请帮助我解决以下问题,我有一个需要重塑的宽数据框。
这是我的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
解决方案
使用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
推荐阅读
- python - 指数拟合和对数线性拟合之间的差异
- python - python:如何将文件夹的完整路径复制到其他文件夹
- ffmpeg - 如何在ffmpeg中结合几个jpeg文件和几个wav文件?
- leaflet - 带有 Sapper SSR 的 Svelte js - 可以为 leaflet.js 提供“窗口”吗?
- reactjs - 如何在 NextJS 中创建轮播?
- java - 如何返回空结果集
- javascript - 我无法从 express 获取 GET 参数
- api - 当结果 api 返回 null 或 /403/404/500/503 状态时,Flutter 在小部件中抛出消息
- postgresql - 如何确定一个 hstore 是否是另一个 hstore 的子集?
- vue.js - Vue:在注销时重定向用户,具体取决于它是哪种类型的页面