1

この構造の約600匹の動物のデータセットがあります。

anim <- c(1,1,1,1,1,2,2,2,2)
point <- c(1,2,3,4,6,3,4,5,6)
temp <- c(38.8,38.5,33.2,33.5,37.2,36.2,36.5,36.0,37.8)
mydf <- data.frame(anim,point,temp)

anim point temp
1     1    38.8
1     2    38.5
1     3    33.2
1     4    33.5
1     6    37.2
2     3    36.2
2     4    36.5
2     5    36.0
2     6    37.8

変数「ポイント」には、動物のさまざまな測定ポイント(温度)が含まれています。これらの測定ポイント(1,2,3,4,5,6)を、1 = bel、2 = ber、3などの新しい変数として使用する必要があります。 = le、4 = re、5 = ey、6=cr。一部のポイントが表示または測定されない場合があるため、NAを入力する必要があることに注意してください。

mynewdfは次のようになります。

anim  bel   ber   le    re    ey    cr
1     38.8  38.5  33.2  33.5  NA    37.2
2     NA    NA    36.2  36.5  36.0  37.8

私の質問が十分に明確であり、どんな助けでも大いに感謝されることを願っています。

編集:

これは私の実際のデータセットからの抜粋です。

head(irpig、n = 25)

head(irpig、n = 25)ダムアニムポイント温度1 1A0331 20584 1 37.9 2 1A0331 20584 2 37.7 3 1A0331 20584 3 34.3 4 1A0331 20584 4 35.8 5 1A0331 20584 6 37.6 6 1A0331 20585 2 38.7 7 1A0331 20585 4 36.4 8 1A0331 20585 6 38.0 9 1A0331 20586 1 39.0 10 1A0331 20586 2 39.8 11 1A0331 20586 3 37.9 12 1A0331 20586 4 38.0 13 1A0331 20586 6 38.5 14 1A0331 20587 1 39.3 15 1A0331 20587 2 38.9 16 1A0331 20587 3 39.4 17 1A0331 20587 4 38.6 18 1A 6 39.4 19 1A0331 20588 1 39.6 20 1A0331 20588 2 39.2 21 1A0331 20588 3 38.9 22 1A0331 20588 4 38.0 23 1A0331 20588 6 39.6 24 1A0331 20589 1 38.1 25 1A0331 20589 2 38.7

バズ

4

1 に答える 1

3

これが1つの解決策です。HadleyWickhamによるライブラリのdcast関数を使用しますreshape2

mydf$point = as.factor(mydf$point)
levels(mydf$point)  = c("bel", "ber", "le", "re",  "ey", "cr")

library(reshape2)
dcast(mydf, anim ~ point)

  anim  bel  ber   le   re ey   cr
1    1 38.8 38.5 33.2 33.5 NA 37.2
2    2   NA   NA 36.2 36.5 36 37.8
于 2011-07-11T16:34:50.333 に答える