[英]How to reshape a data.frame by group
我想转置下表
+---------+----------+------+-------+
| var | Year | A | B |
+---------+----------+ -----+-------+
| Mean | 2006 | 1.3 | 4.6 |
| Median | 2006 | 1.4 | 4.1 |
| Mean | 2007 | 3.6 | 5.5 |
| Median | 2007 | 4.0 | 5.5 |
| Mean | 2008 | 5.5 | 4.0 | `
| Median | 2008 | 5.5 | 5.1 |
+---------+----------+------+-------+
像这样:
+---------+----------+------+--------+
| var | Year | Mean | Median |
+---------+----------+ -----+--------+
| A | 2006 | 1.3 | 1.4 |
| | 2007 | 3.6 | 4.0 |
| | 2008 | 5.5 | 5.5 |
| B | 2006 | 5.5 | 4.6 |
| | 2007 | 5.5 | 5.5 | `
| | 2008 | 5.1 | 5.1 |
+---------+----------+------+--------+
我尝试使用重塑来进行移调,但是主要困难在于保持一年的好位置。
这是使用reshape2
做到这一点的一种方法。 诀窍是首先将数据转换为长格式。
library(reshape2)
d <- data.frame(var=c("Mean", "Median"),
Year=sort(rep(2006:2008,2)),
A=1:6, B=11:16)
d_melted <- melt(d, measure.vars=c("A", "B"))
dcast(d_melted, variable + Year ~ var)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.