【发布时间】:2013-05-09 16:27:39
【问题描述】:
我有一个大型数据集,其中包含各种主题 (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
-
是的。感谢那。我更正了问题