создание нового столбца, чтобы указать переменный номер каждого уникального животного - PullRequest
2 голосов
/ 27 августа 2011

Мне нужно изменить формат моих текущих данных, создав новый столбец как «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 = длина и черта 3 = температура. Это то, что я ищу:

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 Ответ

3 голосов
/ 27 августа 2011
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

и, пожалуйста, лучше отформатируйте код в следующий раз.это просто.

...