R循环执行相同的代码

时间:2018-05-02 14:27:51

标签: r

我试图弄清楚如何重复相同的代码30次,而不是一次输入任何一个代码......任何帮助都将非常感激。

GROUP BY td.db_date

第一个代码根据数据计算简单随机采样,概率为.10。第二个从数据中获取样本。第三,计算fpc,即总数据点的10%。现在,为了估计人口,我需要在没有替换的情况下进行样本设计,包括fpc。然后,对于最后三个代码,我基于该样本计算人口估计,平均值和置信区间。 我必须从数据中重复30个不同的简单随机抽样。因此,将从30个不同的样本中获得所得的估计,平均值和置信区间。它们可能接近但不相等

如何更好地编写此代码,以便每次运行30次,并能够使用SRS_1 <- sample(1:nrow(MyData_points), size=.10*nrow(MyData_points)) data_sample_1 <- MyData_points[SRS_1,] fpc.srs <- rep(6399875, 639987) design_SRS_1 <- svydesign(id=~1, strata=NULL, data=data_sample_1, fpc=fpc.srs) ONStotal_SRS1 <- svytotal(~data_sample_1$V4, design=design_SRS_1) ONSmean_SRS1 <- svymean(~data_sample_1$V4, design=design_SRS_1) CI_SRS_1 <- confint(svytotal(~data_sample_1$V4, design=design_SRS_1)) 打印表格?

1 个答案:

答案 0 :(得分:0)

通常我会使用rbindlist包中的data.table或来自bind_rows的{​​{1}}结合dplyr来构建表格中的一行时间然后将行绑定在一起。以下是使用lapply数据集{/ 1}}的示例:

bind_rows

这给出了mtcars

library(dplyr)

combined_data <- bind_rows(lapply(1:30, function(...) {
  # Take a sample
  SRS_1 <- sample(1:nrow(mtcars), size = .10 * nrow(mtcars))
  data_sample_1 <- mtcars[SRS_1, ]

  # Compute some things from the sample
  m_disp <- mean(data_sample_1$disp)
  m_hp <- mean(data_sample_1$hp)

  # Make a one row data.frame that will be returned by the function
  data.frame(m_disp, m_hp)
}))