我需要通过创建一个新列作为“tnum”(第一列)来指示特征/变量编号来更改当前数据的格式,并使用最后一列“tval”来指示每个特征值。 我目前的数据文件(9,000只动物)与此格式类似:
anim <- c(201,202,203,204,205)
bwt <- c(1.2,1.0,0.9,1.1,1.5)
leng <- c(14,21,18,16,19)
temp <- c(33,34,39,38,37)
mydf <- data.frame(anim,bwt,leng,temp)
anim bwt leng temp
1 201 1.2 14 33
2 202 1.0 21 34
3 203 0.9 18 39
4 204 1.1 16 38
5 205 1.5 19 37
特性1 = bwt,特性2 = leng,特性3 = temp。这就是我要找的:
tnum anim tval
1 201 1.2
2 201 14
3 201 33
1 202 1.0
2 202 21
3 202 34
1 203 0.9
2 203 18
3 203 39
1 204 1.1
2 204 16
3 204 38
1 205 1.5
2 205 19
3 205 37
任何帮助都将不胜感激。
巴兹
答案 0 :(得分:3)
library("reshape")
m <- melt(mydf, id.vars="anim")
m
anim variable value
1 201 bwt 1.2
2 202 bwt 1.0
3 203 bwt 0.9
4 204 bwt 1.1
5 205 bwt 1.5
6 201 leng 14.0
7 202 leng 21.0
8 203 leng 18.0
9 204 leng 16.0
10 205 leng 19.0
11 201 temp 33.0
12 202 temp 34.0
13 203 temp 39.0
14 204 temp 38.0
15 205 temp 37.0
请下次更好地格式化您的代码。很简单。