对data.frame中带有时间点的变量的操作

对data.frame中带有时间点的变量的操作,r,time,dataframe,R,Time,Dataframe,我遇到了一个问题,给你打电话寻求帮助(我也问过类似的问题,但找不到我真正需要的东西,尽管看起来很简单): 我有一个来自50名患者的原始数据帧,有3个时间点(下面的可复制代码)和一个称为“Ht”的感兴趣变量。我的目标是研究这3个时间点之间Ht的变化,例如根据另一个变量(例如,数字变量“A”) idlibrary(plyr) dfrm我不知道这是否清楚。。。但例如,如果我为每个人创建这个值:diff12好的,对于给定的id,你将有Htdiffs,但是a(这也取决于给定id的时间)呢?在一个新的dat

我遇到了一个问题,给你打电话寻求帮助(我也问过类似的问题,但找不到我真正需要的东西,尽管看起来很简单): 我有一个来自50名患者的原始数据帧,有3个时间点(下面的可复制代码)和一个称为“Ht”的感兴趣变量。我的目标是研究这3个时间点之间Ht的变化,例如根据另一个变量(例如,数字变量“A”)

id
library(plyr)

dfrm我不知道这是否清楚。。。但例如,如果我为每个人创建这个值:diff12好的,对于给定的id,你将有
Ht
diffs,但是
a
(这也取决于给定id的时间)呢?在一个新的data.frame中,我认为(但这是一个猜测)变量“a”可以拆分为3列(3个变量)“A1”、“A2”和“A3”。我的部分问题是关于编程的,但在这种情况下也是关于“如何组织数据”。。。非常感谢。谢谢你的回答,杰克!我试过了,但你提出的代码似乎对我不起作用。。事实上,我希望能够根据单个A值绘制3个时间点Ht之间的差异。谢谢Jack,但事实上,我在输入函数后得到的是以下错误消息:“Erreur dans eval.quoted(.variables,data):envir必须为NULL、列表或环境。”不是吗?现在它工作了!(有了额外的代码“dfrm”,我想我或多或少能理解它……但“2”是什么意思在diff2定义的末尾?无论如何谢谢!!++++@den
ddply
plyr
函数之一,因此任何关于
plyr
的文档都是不错的。下面是谷歌的一些热门文章,看起来不错:,实际的论文,官方文档。
plyr
中的函数与基本的
应用非常相似功能(
应用
应用
应用
应用
,等等)。查看
?差异
,了解2的作用。它需要2个滞后差。
    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
 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
    })