r - 数据整理——将 n 步列转置为 n 行
问题描述
我需要以下帮助。任何 Python、R 或 VBA 代码都会有很大帮助
输入
Name Age Grade Name Age Grade Name Age Grade
Esther 12 A Carol 15 A Eugene 15 C
Isaac 17 B Kelvin 21 C Claire 17 B
期望的输出
Name Age Grade
Esther 12 A
Carol 15 A
Eugene 15 C
Isaac 17 B
Kelvin 21 C
Claire 17 B
解决方案
在R
中,一种选择是split
通过列名和unlist
data.frame(lapply(split.default(df1, names(df1)), unlist))
或者另一个选项melt
来自data.table
library(data.table)
melt(setDT(df1), measure = patterns("^Name", "^Age", "^Grade"),
value.name = c("Name", "Age", "Grade"))[, variable := NULL][]
# Name Age Grade
#1: Esther 12 A
#2: Isaac 17 B
#3: Carol 15 A
#4: Kelvin 21 C
#5: Eugene 15 C
#6: Claire 17 B
推荐阅读
- python - SysLogHandler 消息在远程服务器上分组在一行上
- image-processing - 3D 直方图的相似度度量
- typescript - Cypress+TS:从 HTMLelement 获取文本
- javascript - 使用javascript作为单独变量的地理位置纬度和经度
- c - 请求任何 c 函数的返回类型
- excel - Power Pivot 模型消失
- kubernetes - 将 Spinnaker webhook 添加到 bitbucket
- c# - C# - 将 XElement 数组附加到 XElement
- vue.js - Vue.js 如何区分同一页面中的路由器视图“看起来像”
- node.js - 在文档上调用精益会引发 TypeError:精益不是函数