Sérgio, bom dia!

Teria um set de dados pra rodar o CMR? De antemão parece haver problema na execução da rnorm() cuja saída está sendo alocada em um objeto indexado que ainda não existe ('z'). A cada ciclo do for será gerada uma linha com 'npart' elementos e imagino que você queira acumular as saídas, mas essa não é a forma correta. Pode funcionar definindo z como uma lista e adicionando a saída em cada ciclo do for.

Trabalhando só no primeiro trecho pensei em algo assim...

### <BEGIN>
### não testado!
prop <- function(x){
z <- list(NULL)          
for (i in 1:nrow(x)) {
          z[i]=list(rnorm(x$npart[i], mean=x$idade[i], sd=x$sd[i]))}
return(z)
}
### <END>

Desse ponto seria só prosseguir com os cálculos utilizando cada 'linha' da lista.

Éder Comunello <comunello.eder@gmail.com>
Dourados, MS - [22 16.5'S, 54 49'W]