我在以下格式的数据框中有一些数据:
A B C V1 V2 V3
1 1 1 x y z
1 1 2 a b c
...
Run Code Online (Sandbox Code Playgroud)
其中 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
...
Run Code Online (Sandbox Code Playgroud)
在@AnandaMahto 来到这里并提供他的基本reshape解决方案之前,这是我的尝试:
dat <- read.table(text = 'A B C V1 V2 V3
1 1 1 x y z
1 1 2 a b c',header= T)
expandvars <- c("V1","V2","V3")
datreshape <- reshape(dat,
idvar=c("A","B","C"),
varying=list(expandvars),
v.names=c("val"),
times=expandvars,
direction="long")
> datreshape
A B C time val
1.1.1.V1 1 1 1 V1 x
1.1.2.V1 1 1 2 V1 a
1.1.1.V2 1 1 1 V2 y
1.1.2.V2 1 1 2 V2 b
1.1.1.V3 1 1 1 V3 z
1.1.2.V3 1 1 2 V3 c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3747 次 |
| 最近记录: |