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] < [email protected]> 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
_______________________________________________ R-br mailing list [email protected] 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.
