繁体   English   中英

如何按组重塑data.frame

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM