[R-br] Seleção de plantas ( sorteio)

Hélio Gallo Rocha heliogallorocha em gmail.com
Sábado Maio 25 11:19:37 BRT 2013


muito obrigado pela força.

Usei a sugestão do Rodrigo e funcionou perfeitamente, vu olhar a sua com
calma

[]´s
bom fim de semana

Hélio


Em 24 de maio de 2013 15:36, FHRB Toledo [via R-br] <
ml-node+s2285057n4659452h80 em n4.nabble.com> escreveu:

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



-- 
Hélio Gallo Rocha
IFSULDEMINAS - Câmpus Muzambinho
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130525/089388cc/attachment.html>


Mais detalhes sobre a lista de discussão R-br