创建一个新列以指示每个独特动物的可变数量

时间:2011-08-27 10:52:17

标签: r variables numbers

我需要通过创建一个新列作为“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

任何帮助都将不胜感激。

巴兹

1 个答案:

答案 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

请下次更好地格式化您的代码。很简单。