Amigos de R,

Gostaria de uma ajuda ara otimizar um loop. 

Simulei algumas populaçoes com resultados de testes. Agora quero amostrar mil amostras de cada população e cada set de 1000 amostras em algumas condições como tamanho da amostra e prevalencia do evento do interesse. Ao total seriam mais de 1500 amostragens. Por isso, qualquer dica para torna-lo mais rápido e eficiente será bem vinda. Eu sei que faltou diversas populações.... mas é que o arquivo é grande.

O script inicial...

with <- 250000
without <- 250000
set.seed(as.numeric(Sys.time()))

#Population 1: bi-normal distribution with equal varainces

# Population 1 with AUC = .9
pop1 <- round(rnorm(without,200,60))
pop1 <- as.data.frame(cbind(0,pop1))
colnames(pop1) <- c('reference','test')
# pop1[1:10,];nrow(pop1)
pop1temp <- round(rnorm(without,309,60))
pop1temp <- as.data.frame(cbind(1,pop1temp))
colnames(pop1temp) <- c('reference','test')
# pop1temp[1:10,]; nrow(pop1temp)
pop1_9 <- rbind(pop1,pop1temp) # nrow(pop1)
rm(pop1temp,pop1)

.... outras populações....

> population <- ls()
> samp_size <- c(50,100,150,300,500,1000,3000)
> prev <- c(.05,.1,.2,.3,.5,.75)
> conditions <- expand.grid(population,samp_size,prev)
> conditions <- cbind(conditions[,1],substr(conditions[,1],1,4),as.numeric(substr(conditions[,1],6,6))/10,conditions[,2:3])
> names(conditions) <- c('dataset','population','auc','samp_size','prevalence')
> conditions$dataset <- as.character(conditions$dataset)

> head(conditions)
  dataset population auc samp_size prevalence
1  pop1_6       pop1 0.6        50       0.05
2  pop1_7       pop1 0.7        50       0.05
3  pop1_8       pop1 0.8        50       0.05
4  pop1_9       pop1 0.9        50       0.05
5  pop2_6       pop2 0.6        50       0.05
6  pop2_7       pop2 0.7        50       0.05

> setwd('E:/Banco/cutoff/datasets')

# O problema começa aqui onde eu preciso amostrar de diversos bancos de dados em sequencia armazenados na área de trabalho, mas não consigo fazer isso de forma elegante. então eu acabei usando o parse mas antes preciso salvar o nome do banco no disco, e quando consigo fazer isso vem um aviso que não consigo entender.  

# Aqui deveria começar o loop seguindo as condições do banco conditions.

> cat(conditions[1,1],file="expr"); dataux <- eval(parse(file="expr"))
Mensagens de aviso perdidas:
In readLines(file) : linha final incompleta encontrada em 'expr'
> with <- sample(dataux[which(dataux$reference==1),2],ceiling(conditions[1,4]*conditions[1,5]),T)
> without <- sample(dataux[which(dataux$reference==0),2],conditions[1,4]*(1-conditions[1,5]),T)
> with <- cbind(reference=1,test=with)
> without <- cbind(reference=0,test=without)
> tempdata <- data.frame(rbind(with,without))

> write.csv2(tempdata,paste0(conditions[1,1],'_',conditions[1,4],'_',substr(conditions[1,5],3,4),'.csv'),row.names = F)

# aqui deveria terminar o loop

Abraço,

Dr. Pedro Emmanuel A. A. do Brasil
Curriculum Lattes:  http://lattes.cnpq.br/6597654894290806 
Instituto de Pesquisa Clínica Evandro Chagas
Fundação Oswaldo Cruz
Rio de Janeiro - Brasil
Av. Brasil 4365,
CEP 21040-360,
Tel 55 21 3865-9648
email: pedro.brasil@ipec.fiocruz.br
email: emmanuel.brasil@gmail.com

---Apoio aos softwares livres
www.zotero.org - gerenciamento de referências bibliográficas.
www.broffice.org ou www.libreoffice.org - textos, planilhas ou apresentações.
www.epidata.dk - entrada de dados.
www.r-project.org - análise de dados.
www.ubuntu.com - sistema operacional