如何在data.frame中使用循环(在R中)

时间:2013-12-21 11:41:12

标签: r loops dataframe

我有这段代码:

#load library  foreign and mass
library(foreign)
library(MASS)

#read spss file
read.spss("C:\\Users\\Morisato\\Desktop\\Modelação Estatistica e Análise de Dados\\1º Ano\\1º Semestre\\Análise de Dados com Software Estatistico\\Exercicios Regressão Linear\\imc_mest.sav")

#save data frame in a variable dados
dados= data.frame(read.spss("C:\\Users\\Morisato\\Desktop\\Modelação Estatistica e Análise de Dados\\1º Ano\\1º Semestre\\Análise de Dados com Software Estatistico\\Exercicios Regressão Linear\\imc_mest.sav"))

#set seed
set.seed(5)

人口长度

Y < - 540

样本长度

n < - 30

我想制作一个循环,提取30个元素的样本并做50次,我试试这个:

#create a matrix with 50 rows (sample) and 30 cols (the number os elements)
result <- matrix(ncol=30,nrow=50)

for (i in 1:50){
  result[i,1:30] <- sample(Y, n, replace=F)
} # end for  

但它只显示了元素的数量,但我想保存每个样本的数据帧并保存这些样本的置信区间。

1 个答案:

答案 0 :(得分:0)

以下命令将创建长度为50的列表。每个列表元素将包含数据框dados的随机子集,其中n行。 (我假设Y代表dados的行数。)

result <- replicate(50, dados[sample(Y, n), ], simplify = FALSE)

然后您可以应用此代码来获得线性回归系数的置信区间:

lapply(result, function(x) confint(lm(NHHD ~ ATD + DASU + DAPE + NRX + MES, x)))

这也将返回长度为50的列表。