<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Paulo, bom dia!</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">A instrução <font face="monospace, monospace">f<span style="font-size:12.8px">or (i in 1:500)</span></font><span style="font-family:arial,sans-serif;font-size:12.8px"> não parece coerente, pois me parece que você deveria variar em função da iteração n x p. </span>Ao variar n você irá criar vetores de tamanhos diferentes, impossibilitando o armazenamento direto em um data.frame(). Poderia utilizar uma lista. </div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Você pode tentar algo como:</div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace">simulacao <- function(proporcao, moedas){for (n in c(10, 20, 30)) for (p in c(0.3, 0.4, 0.5)) print(moedas(n,p))}</font></div><div class="gmail_default"><font face="monospace, monospace">simulacao(proporcao, moedas)</font></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Outro ponto é que você poderia usar rbinom() para os sorteios, enxugando seu código. Deixo uma ideia abaixo:</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace">### <code r></font></div><div class="gmail_default"><font face="monospace, monospace">args(rbinom) ### function (n, size, prob) </font></div><div class="gmail_default"><font face="monospace, monospace">vetor_moedas <- rbinom(100, 1, .4); vetor_moedas</font></div><div class="gmail_default"><font face="monospace, monospace">sum(vetor_moedas)/length(vetor_moedas) ### proporção final</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">for (n in c(10, 20, 30)) for (p in c(0.3, 0.4, 0.5)) print(rbinom(n, 1,p))</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 0 1 1 0 0 0 0 0 0 0</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 0 0 0 0 0 0 1 0 0 1</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 0 1 1 0 0 0 0 1 0 1</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0</font></div><div class="gmail_default"><font face="monospace, monospace">#  [1] 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0</font></div><div class="gmail_default"><span style="font-family:monospace,monospace">### </code></span><br></div></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font face="arial, helvetica, sans-serif" style="font-size:small"><div style="font-family:'trebuchet ms',sans-serif;display:inline">​</div>================================================<br>Éder Comunello</font><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">PhD Student in Agricultural Systems Engineering (USP/Esalq)</span><br></div><div><span style="font-size:small">Brazilian Agricultural Research Corporation (</span><font face="arial, helvetica, sans-serif" style="font-size:small">Embrapa)</font><div style="font-size:small"><font face="arial, helvetica, sans-serif">Dourados, MS, Brazil [</font>22 16.5'S, 54 49.0'W<span style="font-family:arial,helvetica,sans-serif">]</span></div><div><div><br></div><div><br></div></div><div style="font-size:small"><br></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">Em 27 de janeiro de 2016 03:33, Paulo Henrique Pimenta <span dir="ltr"><<a href="mailto:paulopimenta6@hotmail.com" target="_blank">paulopimenta6@hotmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div><div dir="ltr">Olá a todos<div><br></div><div>Estou escrevendo um código que calcula o lance de uma moeda jogada e a probabilidade dela acontecer em respostas de 1 para cara e 0 para coroa, num bloco do meu código fiquei com uma dúvida relacionada a vetorização. Abaixo passarei todo o código e irei destacar o que me traz a dúvida:<br><br><div>####Laboratorio 1 de R</div><div><br></div><div>###cara eh 1</div><div>###coroa eh 0</div><div>vetor_moedas <- NULL</div><div>vetor <- NULL</div><div>a <- NULL</div><div><br></div><div>moeda <- function(p){</div><div><br></div><div>if(runif(1) < p){</div><div><br></div><div>                 y <- 1  </div><div><br></div><div>                 }else{</div><div><br></div><div>                       y <- 0</div><div>   </div><div>                      }</div><div>                                return(y)</div><div>  </div><div>                                }</div><div>                </div><div>####separando uma funcao da outra####</div><div><br></div><div>moedas <- function(numeros,probabilidade){</div><div><br></div><div>                                               for (i in 1:numeros){</div><div><br></div><div>                                               vetor[i] <- moeda(probabilidade)</div><div><br></div><div>                                                                        }</div><div><br></div><div>                                               return(vetor)</div><div><br></div><div>                                               } </div><div><br></div><div><br></div><div>####separando uma funcao da outra####</div><div><br></div><div>proporcao <- function(moedas){</div><div><br></div><div>                           numeros_1 <- sum(vetor_moedas)</div><div><br></div><div>                           numeros_totais <- length(vetor_moedas) </div><div><br></div><div>                           proporcao_final <- numeros_1/numeros_totais</div><div><br></div><div>                           return(proporcao_final)</div><div><br></div><div>                          }</div><div><br></div><div>####separando uma funcao da outra####</div><div><br></div><div><span style="font-size:12pt">simulacao <- function(proporcao, moedas){</span></div><div><br></div><div>###variando o "n" e o "p"</div><div><br></div><div>for (i in 1:500){</div><div><br></div><div><span style="color:rgb(38,114,236);background-color:rgb(255,255,255)">\\Aqui começa a minha, pois como fazer com que o vetor a1 aloque como data.frame todos os dados feitos pela função moedas, como fazer com que a2 também aloque um outro data.frame que aloque informações da função moedas e assim por diante... </span></div><div><br></div><div>  n <- c(10, 20, 30, 40, 50)</div><div>  p <- c(0.2, 0.3, 0.4, 0.5)  </div><div>    </div><div>a[i] <- data.frame(moedas(n[i],p[i])) </div><div><span style="background-color:rgb(0,0,255)"><br></span></div><div><font color="#5133ab">\\ As vezes ele só aloca o que é produzido em moedas(n[1],p[1]) em a1 e recicla o restante. Se alguém quiser testar fiquem a vontade para ajudar!</font></div><div><br></div><div>               }</div><div><br></div><div><br></div><div>return(a)</div><div><br></div><div>                                       }</div><div><br></div><div>##############################</div><div>##############################</div><div>###Probabilidade de ser cara ou 1 eh 0.5 - funcao moeda</div><div>###lancamento de 10 moedas - funcao moedas</div><div><br></div><div>###comeco das chamas</div><div><br></div><div>#########################################</div><div>prob <- 0.4</div><div><br></div><div>moeda(prob)</div><div><br></div><div>#########################################</div><div>n_1 <- 100</div><div><br></div><div>moedas(n_1, prob)</div><div><br></div><div>#########################################</div><div><br></div><div>vetor_moedas <- moedas(n_1, prob)</div><div><br></div><div>#########################################</div><div><br></div><div>proporcao(vetor_moedas)</div><div><br></div><div>#########################################</div><div><br></div><div>simulacao(proporcao,moedas)</div><div><br></div><div>###</div><div>###</div><div>##############################</div> </div><div><br></div><div>Um grande abraço a todos!!<br><br>Paulo Henrique de A. S. Pimenta.<div><br></div><div>Graduando em Meteorologia (Bacharelado) - IAG/USP.<br>Fone: <a href="tel:%2B5511981318435" value="+5511981318435" target="_blank">+5511981318435</a>.</div></div>                                       </div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div></div>