我有一个大型数据集,其中包含各种主题 (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
功能可以帮忙吗?