如何在数据框中仅堆叠一些列? [英] How do I stack only some columns in a data frame?

查看:9
本文介绍了如何在数据框中仅堆叠一些列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的数据框中有一些数据,格式如下:

A  B  C  V1  V2  V3
1  1  1  x   y   z
1  1  2  a   b   c
...

其中A、B、C是系数,组合A、B、C对于每一行都是唯一的。

我需要将一些列转换为系数,以实现如下形式:

A  B  C  V  val
1  1  1  V1 x
1  1  1  V2 y
1  1  1  V3 z
1  1  2  V1 a
1  1  2  V2 b
1  1  2  V2 c
...

这似乎既与stack有关,又与xtabs的相反情况有关,但我不知道如何指定只应"堆叠"某些列。

推荐答案

使用reshape2

dat <- read.table(text = 'A  B  C  V1  V2  V3
1  1  1  x   y   z
1  1  2  a   b   c',header= T)
library(reshape2)
melt(dat,id.vars = c('A','B','C'))
 A B C variable value
1 1 1 1       V1     x
2 1 1 2       V1     a
3 1 1 1       V2     y
4 1 1 2       V2     b
5 1 1 1       V3     z
6 1 1 2       V3     c

这篇关于如何在数据框中仅堆叠一些列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆