<div dir="ltr">Helio,<div><br></div><div style>Uma sugestão para seu problema...</div><div style><br></div><div style><div>dados <- data.frame(ponto = c(rep(3001,6),rep(3002,6),rep(3003,6)),</div><div> planta = c(rep(seq(1:6),3)),</div>
<div> valor = seq(1.5,10,.5))</div><div><br></div><div>dados.sub <- split(dados, dados$planta)</div><div><br></div><div>amostrador <- function(x, tamanho) x[sample(1:nrow(x), tamanho, replace = FALSE), ]</div>
<div><br></div><div>dados2 <- do.call(rbind, lapply(dados.sub, amostrador, tamanho = 2))</div><div>dados3 <- do.call(rbind, lapply(dados.sub, amostrador, tamanho = 3))</div><div>dados4 <- do.call(rbind, lapply(dados.sub, amostrador, tamanho = 4))</div>
<div>##...</div><div><br></div><div style>Vale lembrar que pela implementação a amostragem das linhas é sem reposição, para alterar tal comportamento use o replace = TRUE!</div><div style><br></div><div style>att,</div><div style>
FH </div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/24 Rodrigo Coster <span dir="ltr"><<a href="mailto:rcoster@gmail.com" target="_blank">rcoster@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Helio, dai temos varias possiveis soluções.. ou sortear as 2 colunas no fim:<div><br></div>do.call(rbind, by(dados, dados[,1], function(x, ...) x[sample(1:nrow(x), ...), ], size=1))[,c(1:2, sample(3:4, 1))]<br>
<br>Ou mexer na função dentro do apply e fazer o sorteio para cada ponto:<br><br>do.call(rbind, by(dados, dados[,1], function(x, ...) { z <- x[sample(1:nrow(x), ...), c(1:2, sample(3:4, 1))] ; colnames(z) <- c('ponto', 'planta', 'valor') ; z } , size=1))</div>
<div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">2013/5/24 Hélio Gallo Rocha <span dir="ltr"><<a href="mailto:heliogallorocha@gmail.com" target="_blank">heliogallorocha@gmail.com</a>></span><br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<div dir="ltr">Mandei exemplo em que dobrou o numero de plantas, esse seria o exemplo correto:<div><br></div><div><div>ponto=c(rep(3001,6),rep(3002,6),rep(3003,6));ponto ;length(ponto)</div><div>planta=c(rep(seq(1:6),3));planta ;length(planta)</div>
<div>valor1=seq(1.25,10,.5);valor1;length(valor1) </div><div>valor2=seq(10,1.25,-.5);valor2;length(valor2) </div><div>dados=cbind(ponto,planta,valor1,valor2);dados</div></div><div><br></div><div><br></div><div>Grato</div>
<div><br></div><div>Hélio</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Em 24 de maio de 2013 09:20, Hélio Gallo Rocha <span dir="ltr"><<a href="mailto:heliogallorocha@gmail.com" target="_blank">heliogallorocha@gmail.com</a>></span> escreveu:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Rodrigo, fiquei em outra situação.<div><br></div><div>A função envida funciona, mas se tiver mais uma variável como este exemplo:</div>
<div><div>ponto=c(rep(3001,12),rep(3002,12),rep(3003,12))</div><div>planta=c(rep(seq(1:6),6))</div>
<div>valor1=seq(1.25,10,.25)</div><div>valor2=seq(10,1.25,-.25)</div><div>ramo1=c(rep("A",36))</div><div>ramo2=c(rep("B",36))</div><div>dados=cbind(ponto,planta,valor1,valor2);dados</div><div><br></div>
<div><div> ponto planta valor1 valor2</div><div> [1,] 3001 1 1.25 10.00</div><div> [2,] 3001 2 1.50 9.75</div><div> [3,] 3001 3 1.75 9.50</div><div> [4,] 3001 4 2.00 9.25</div><div>
[5,] 3001 5 2.25 9.00</div><div> [6,] 3001 6 2.50 8.75</div><div> [7,] 3001 1 2.75 8.50</div><div> [8,] 3001 2 3.00 8.25</div><div> [9,] 3001 3 3.25 8.00</div><div>[10,] 3001 4 3.50 7.75</div>
<div>[11,] 3001 5 3.75 7.50</div><div>[12,] 3001 6 4.00 7.25</div><div>[13,] 3002 1 4.25 7.00</div><div>[14,] 3002 2 4.50 6.75</div><div>[15,] 3002 3 4.75 6.50</div><div>
[16,] 3002 4 5.00 6.25</div>
<div>[17,] 3002 5 5.25 6.00</div><div>[18,] 3002 6 5.50 5.75</div><div>[19,] 3002 1 5.75 5.50</div><div>[20,] 3002 2 6.00 5.25</div><div>[21,] 3002 3 6.25 5.00</div><div>
[22,] 3002 4 6.50 4.75</div>
<div>[23,] 3002 5 6.75 4.50</div><div>[24,] 3002 6 7.00 4.25</div><div>[25,] 3003 1 7.25 4.00</div><div>[26,] 3003 2 7.50 3.75</div><div>[27,] 3003 3 7.75 3.50</div><div>
[28,] 3003 4 8.00 3.25</div>
<div>[29,] 3003 5 8.25 3.00</div><div>[30,] 3003 6 8.50 2.75</div><div>[31,] 3003 1 8.75 2.50</div><div>[32,] 3003 2 9.00 2.25</div><div>[33,] 3003 3 9.25 2.00</div><div>
[34,] 3003 4 9.50 1.75</div>
<div>[35,] 3003 5 9.75 1.50</div><div>[36,] 3003 6 10.00 1.25</div><div><div><br></div><div>do.call(rbind, by(dados, dados[,1], function(x, ...) x[sample(1:nrow(x), ...), ], size=1))<br></div>
</div><div> ponto planta valor1 valor2</div>
<div>3001 3 1.75 9.50</div><div>3002 5 6.75 4.50</div><div>3003 4 9.50 1.75</div></div><div><br></div><div>No caso seria sortear apenas um valor.</div><div><br></div><div>A função que enviou resolve se as colunas valor 1 e valor 2 estiverem uma debaixo da outra, no exemplo seriam 72 linhas.</div>
<div><br></div><div>Se tiver solução, seria mais fácil, </div><div><br></div><div>Obrigado,</div></div><div>Hélio</div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div>Em 23 de maio de 2013 21:39, Rodrigo Coster [via R-br] <span dir="ltr"><<a href="mailto:ml-node+s2285057n4659434h22@n4.nabble.com" target="_blank">ml-node+s2285057n4659434h22@n4.nabble.com</a>></span> escreveu:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Ops, é sortear plantas dentro de ponto, nao ponto dentro de plantas. Troca o dados[,2] por dados[,1]<div><div><div><br></div><div><div>do.call(rbind, by(dados, dados[,1], function(x, ...) x[sample(1:nrow(x), ...), ], size=1))</div>
</div><div><br></div></div></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/23 Rodrigo Coster <span dir="ltr"><<a href="http://user/SendEmail.jtp?type=node&node=4659434&i=0" rel="nofollow" link="external" target="_blank">[hidden email]</a>></span><div>
<div><br><blockquote style="border-left:2px solid #cccccc;padding:0 1em" class="gmail_quote">
<div dir="ltr">Da para fazer com do.call() e by():<div><br></div><div><div>do.call(rbind, by(dados, dados[,2], function(x, ...) x[sample(1:nrow(x), ...), ], size=1))</div></div><div><br></div><div>Depois é só ir mudando o parametro size para outros tamanhos... e se quiser amostragem com reposição, adicionar o replace=TRUE depois do size.</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>2013/5/23 Hélio Gallo Rocha <span dir="ltr"><<a href="http://user/SendEmail.jtp?type=node&node=4659434&i=1" rel="nofollow" link="external" target="_blank">[hidden email]</a>></span><br>
</div></div><blockquote style="border-left:2px solid #cccccc;padding:0 1em" class="gmail_quote"><div><div>
<div dir="ltr">Caros da Lista<div><br><div>Com os dados hipotéticos abaixo:</div><div><br></div><div><div><div>ponto=c(rep(3001,6),rep(3002,6),rep(3003,6)) </div><div>planta=c(rep(seq(1:6),3))</div><div>valor=seq(1.5,10,.5) </div>
<div>dados=cbind(ponto,planta,valor);dados</div></div><div><br></div><div><div> ponto planta valor</div><div> [1,] 3001 1 1.5</div><div> [2,] 3001 2 2.0</div><div> [3,] 3001 3 2.5</div><div> [4,] 3001 4 3.0</div>
<div> [5,] 3001 5 3.5</div><div> [6,] 3001 6 4.0</div><div> [7,] 3002 1 4.5</div><div> [8,] 3002 2 5.0</div><div> [9,] 3002 3 5.5</div><div>[10,] 3002 4 6.0</div><div>[11,] 3002 5 6.5</div>
<div>[12,] 3002 6 7.0</div><div>[13,] 3003 1 7.5</div><div>[14,] 3003 2 8.0</div><div>[15,] 3003 3 8.5</div><div>[16,] 3003 4 9.0</div><div>[17,] 3003 5 9.5</div><div>[18,] 3003 6 10.0</div>
</div><div><br></div><div>então temos 3 pontos ( 3001, 3002, 3003) </div><div>seis plantas em cada ponto ( 1,2,3,4,5,,6)</div><div><br></div><div>Já tentei usar sample, mas sorteia aleatoriamente</div>
<div><br></div><div>Preciso que seja sorteada uma planta de cada ponto, depois vou sortear duas plantas de cada ponto, e assim sucessivamente</div><div><br></div><div>Agradeço desde já</div><span><font color="#888888"><div>
<br></div>
<div><br></div>-- <br>Hélio Gallo Rocha<br>IFSULDEMINAS - Câmpus Muzambinho<br>
</font></span></div></div></div>
<br></div></div>_______________________________________________<br>
R-br mailing list<br>
<a href="http://user/SendEmail.jtp?type=node&node=4659434&i=2" rel="nofollow" link="external" target="_blank">[hidden email]</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="nofollow" link="external" 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="nofollow" link="external" 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>
</blockquote></div></div></div><br></div><div><div>
<br>_______________________________________________
<br>R-br mailing list
<br><a href="http://user/SendEmail.jtp?type=node&node=4659434&i=3" rel="nofollow" link="external" target="_blank">[hidden email]</a>
<br><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="nofollow" link="external" 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="nofollow" link="external" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.
<br>
<br>
<hr noshade size="1" color="#cccccc">
</div></div><div style="color:#444;font:12px tahoma,geneva,helvetica,arial,sans-serif"><div><div>
<div style="font-weight:bold">If you reply to this email, your message will be added to the discussion below:</div>
</div></div><a href="http://r-br.2285057.n4.nabble.com/R-br-Selecao-de-plantas-sorteio-tp4659435p4659434.html" target="_blank">http://r-br.2285057.n4.nabble.com/R-br-Selecao-de-plantas-sorteio-tp4659435p4659434.html</a>
</div><div><div>
<div style="color:#666;font:11px tahoma,geneva,helvetica,arial,sans-serif;margin-top:.4em;line-height:1.5em">
To unsubscribe from R-br, <a href="http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3357982&code=aGVsaW9nYWxsb3JvY2hhQGdtYWlsLmNvbXwzMzU3OTgyfC0xMzQ3NTkwMDY4" target="_blank">click here</a>.<br>
<a href="http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml" rel="nofollow" style="font:9px serif" target="_blank">NAML</a>
</div></div></div></div></div></blockquote></div><div><div><br><br clear="all"><div><br></div>-- <br>Hélio Gallo Rocha<br>IFSULDEMINAS - Câmpus Muzambinho<br>
</div></div></div>
</blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br>Hélio Gallo Rocha<br>IFSULDEMINAS - Câmpus Muzambinho<br>
</div></div></div>
<br></div></div><div class="im">_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
</div><div class="im"><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" 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" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></div></blockquote></div><br></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" 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" 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>