0

私は問題に行き詰まり、あなたに助けを求める電話を送ります(同様の質問をしましたが、単純に見えますが、必要なものを正確に見つけることができませんでした):3つの時点を持つ50人の患者からの元のデータフレームがあります(以下の再現可能なコード) と "Ht" と呼ばれる目的の変数。私の目標は、たとえば別の変数 (ここでは数値変数 "A") に従って、これら 3 つの時点の間の Ht の変動を調べることです。

    id  <-  rep(c(seq(1,50,1)),3)
    time  <- factor(rep(c("day1", "day2", "day3"), c(50,50,50)), levels=c("day1", "day2", "day3"), labels=c("day1", "day2", "day3"), ordered=TRUE)
    Ht  <- rnorm(150, mean=30, sd=3)
    A  <- rnorm(150, mean=7, sd=10)
    dfrm  <-  cbind (id,time,Ht,A)

    > head(dfrm)
      id time       Ht          A
 [1,]  1    1 28.64048 11.1595852
 [2,]  2    1 28.30068  4.2925773
 [3,]  3    1 32.51943 21.2013316
 [4,]  4    1 30.66561  0.6980816
 [5,]  5    1 28.92749 22.2756818
 [6,]  6    1 33.82217 14.2877789

1 日目と 2 日目、2 日目と 3 日目、1 日目と 3 日目の Ht 値の違いを調べたいのですが、ID と一緒に個々のデータからそれらの計算を挿入したいと思います。値、およびその他の変数。新しいdata.frameを構築する方が良いかどうかはわかりませんが、そう思います。誰かが簡単な進め方を提案できますか? 事前にどうもありがとうございました。デニス

4

1 に答える 1

2
 library(plyr)
 dfrm <- data.frame(dfrm)
 out <- ddply(dfrm, .(id), function(x) {
        x <- x[order(x$time),]
        x$diff <- c(NA, diff(x$Ht))
        x$diff2 <- c(NA, NA, diff(x$Ht, 2))
        x
    })
于 2013-08-10T13:25:48.173 に答える