我有一个大的数据集包括在各种题材(ID)的纵向测量的返回结果和一些变量可以说:执行数值运算,并在相同的数据帧
test.df <- data.frame(id=c(rep("A", 50),rep("B", 50)), x1=rnorm(100), x2=rnorm(100))
欲对每个ID的所有记录执行一些数字操作并将结果返回到同一数据集中。
现在我正在做的事情是:
test.df <- data.frame(id=c(rep("A", 50),rep("B", 50)), x1=rnorm(50), x2=rnorm(50))
test.df$mean.of.x1<-NA
test.df$mean.of.x2<-NA
for(i in unique(test.df$id)){
test.df$mean.of.x1[test.df$id==i]<-mean(test.df$x1[test.df$id==i])
test.df$mean.of.x2[test.df$id==i]<-mean(test.df$x2[test.df$id==i])
}
的例子非常简单(也许愚蠢的),但它表明我需要什么(在我原来的问题有几个功能,对于每个要运行ID不只是mean
)。有没有更有效的方法来做到这一点? *apply
函数可以帮助吗?
您的意思是创建像一个示例性测试:test.df < - data.frame(ID = C(REP( “A”,50),代表( “B”,50)) ,x1 = rnorm(100),x2 = rnorm(100))。你现在拥有的方式只是给两个组分配相同的值,所以他们的手段都是一样的 – kith 2013-05-09 16:55:42
是的。感谢那。我纠正了这个问题 – ECII 2013-05-09 18:09:25