【发布时间】:2014-02-02 08:30:44
【问题描述】:
我正在尝试使用 R 阻止引导数据集。我有一个县公司的数据框。我想对有替换的县进行抽样,然后用该县样本中的所有公司(有替换)建立一个数据集。我对新数据集进行回归。然后我再次采样。
我有一个像这样工作的 for 循环:
for(j in 1:10000){
y=NULL
for(i in 1:length(unique(data$firm_id))){
y=rbind(y, data[which(data$county_id==sample(unique(data$county_id), replace=T)[i]),])
}
a=rbind(a, lm(profit~employees, data=y)$coefficients)
}
不幸的是,R 中的这种 for 循环非常慢且计算量大。是否可以使用更高效的 apply 函数来实现这一点?
【问题讨论】:
-
请提供一个可重现的小例子。
-
有一个
library(boot)包可以回答你的问题。但是,您可能可以使用sample来解决问题并简化您的代码。没有一个小例子,不知道如何提供帮助。 -
还可以查看burns-stat.com/pages/Tutor/R_inferno.pdf,了解如何优化代码的一些技巧。
-
谢谢!不知道我是怎么错过这个问题的。加上下面的代码帮助我弄清楚了。
标签: r for-loop statistics regression apply