[R-br] Sorteio de n linhas com especificação de variáveis e repetição dos valores calculados nas linhas

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[R-br] Sorteio de n linhas com especificação de variáveis e repetição dos valores calculados nas linhas

R-br mailing list
Prezados Membros,

     Segue um exemplo do que estou tentando fazer:

#Tenho um banco de dados d com 4 variáveis (State, Amb, Year e rate)

library(data.table)
d  <- fread ("
            State    Amb         Year    rate
            GA       soil        2015     .4
            GA       soil        2015     .4
            GA       soil        2015     .5
            GA       soil        2015     .2
            GA       soil        2015     .3
            GA       soil        2015     NA
            GA       soil        2016     1.0
            GA       soil        2016     2.0
            GA       soil        2016      .5
            GA       soil        2016     1.0
            GA       veg         2015     .4
            GA       veg         2015     .4
            GA       veg         2015     .5
            GA       veg         2015     .2
            GA       veg         2015     .3
            GA       veg         2015     NA
            GA       veg         2016     1.0
            GA       veg         2016     2.0
            GA       veg         2016      .5
            GA       veg         2016     1.0
            ")
#

  Gostaria de sortear 5 linhas dentro de cada variável Amb, calcular o
desvio padrão da variável rate e repetir
  os valores obtidos nas linhas envolvidas em uma nova coluna (desv_pad)
ao fim cada sorteio, sendo meu output desejado em um sorteio hipotético:

      State  Age Year rate desv_pad
  1:    GA soil 2015  0.4   0.7549834
  2:    GA soil 2015  0.4   0.7549834
  3:    GA soil 2015  0.5   0.3082207
  4:    GA soil 2015  0.2   0.3082207
  5:    GA soil 2015  0.3   0.3082207
  6:    GA soil 2015   NA   0.7549834
  7:    GA soil 2016  1.0   0.7549834
  8:    GA soil 2016  2.0   0.7549834
  9:    GA soil 2016  0.5   0.3082207
10:    GA soil 2016  1.0   0.3082207
11:    GA  veg 2015  0.4   0.580517
12:    GA  veg 2015  0.8   0.8736895
13:    GA  veg 2015  0.5   0.580517
14:    GA  veg 2015  1.5   0.580517
15:    GA  veg 2015  0.3   0.8736895
16:    GA  veg 2015   NA   0.8736895
17:    GA  veg 2016  1.0   0.580517
18:    GA  veg 2016   NA   0.8736895
19:    GA  veg 2016  2.0   0.8736895
20:    GA  veg 2016  1.7   0.580517

  Alguém teria uma dica de como resolver isso?

  Obrigado

--
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO)
e-mails:[hidden email]
         [hidden email]
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722   -   ResearcherID: A-5790-2016
Researchgate: www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
======================================================================

_______________________________________________
R-br mailing list
[hidden email]
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 fornea cdigo mnimo reproduzvel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Sorteio de n linhas com especificação de variáveis e repetição dos valores calculados nas linhas

R-br mailing list
Olá, Alexandre

Tente criar um novo data.frame para o resultado e iterar pelos valores de Amb:

Repare que o parâmetro "na.rm = T" do comando sd irá desconsiderar os registros com rate = NA no cálculo do desvio padrão.

d$Amb = factor(d$Amb)
ambs = levels(d$Amb)

resultado = data.frame(
  State = character()
  , Amb = character()
  , Year = integer()
  , rate = double()
  , desv_pad = double())

# quantas vezes irá realizar o experimento:
# "sortear 5 linhas dentro de cada variável Amb e calcular o desvio padrão da variável rate"
repeticoes = 2

for(amb in ambs) {
  subpopulacao = d[d$Amb == amb]
  for (i in 1:repeticoes) {
    amostra = subpopulacao[sample(NROW(subpopulacao), 5),]
    amostra$desv_pad = sd(amostra$rate, na.rm = T)
    resultado = rbind(resultado, amostra)
  }
}

Atenciosamente,
Rodrigo Ângelo

On Mon, Nov 5, 2018 at 2:38 PM ASANTOS por (R-br) <[hidden email]> wrote:
Prezados Membros,

     Segue um exemplo do que estou tentando fazer:

#Tenho um banco de dados d com 4 variáveis (State, Amb, Year e rate)

library(data.table)
d  <- fread ("
            State    Amb         Year    rate
            GA       soil        2015     .4
            GA       soil        2015     .4
            GA       soil        2015     .5
            GA       soil        2015     .2
            GA       soil        2015     .3
            GA       soil        2015     NA
            GA       soil        2016     1.0
            GA       soil        2016     2.0
            GA       soil        2016      .5
            GA       soil        2016     1.0
            GA       veg         2015     .4
            GA       veg         2015     .4
            GA       veg         2015     .5
            GA       veg         2015     .2
            GA       veg         2015     .3
            GA       veg         2015     NA
            GA       veg         2016     1.0
            GA       veg         2016     2.0
            GA       veg         2016      .5
            GA       veg         2016     1.0
            ")
#

  Gostaria de sortear 5 linhas dentro de cada variável Amb, calcular o
desvio padrão da variável rate e repetir
  os valores obtidos nas linhas envolvidas em uma nova coluna (desv_pad)
ao fim cada sorteio, sendo meu output desejado em um sorteio hipotético:

      State  Age Year rate desv_pad
  1:    GA soil 2015  0.4   0.7549834
  2:    GA soil 2015  0.4   0.7549834
  3:    GA soil 2015  0.5   0.3082207
  4:    GA soil 2015  0.2   0.3082207
  5:    GA soil 2015  0.3   0.3082207
  6:    GA soil 2015   NA   0.7549834
  7:    GA soil 2016  1.0   0.7549834
  8:    GA soil 2016  2.0   0.7549834
  9:    GA soil 2016  0.5   0.3082207
10:    GA soil 2016  1.0   0.3082207
11:    GA  veg 2015  0.4   0.580517
12:    GA  veg 2015  0.8   0.8736895
13:    GA  veg 2015  0.5   0.580517
14:    GA  veg 2015  1.5   0.580517
15:    GA  veg 2015  0.3   0.8736895
16:    GA  veg 2015   NA   0.8736895
17:    GA  veg 2016  1.0   0.580517
18:    GA  veg 2016   NA   0.8736895
19:    GA  veg 2016  2.0   0.8736895
20:    GA  veg 2016  1.7   0.580517

  Alguém teria uma dica de como resolver isso?

  Obrigado

--
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: <a href="tel:+55%2065%2099686-6970" value="+5565996866970" target="_blank">(+55) 65 99686-6970 (VIVO) <a href="tel:+55%2065%203221-2674" value="+556532212674" target="_blank">(+55) 65 3221-2674 (FIXO)
[hidden email]
         [hidden email]
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722   -   ResearcherID: A-5790-2016
Researchgate: www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
======================================================================

_______________________________________________
R-br mailing list
[hidden email]
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 fornea cdigo mnimo reproduzvel.

_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Sorteio de n linhas com especificação de variáveis e repetição dos valores calculados nas linhas

R-br mailing list

Muito obrigado, problema resolvido!!!

-- 
======================================================================
Alexandre dos Santos
Proteção Florestal 
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial 
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO)
[hidden email] 
        [hidden email] 
Lattes: http://lattes.cnpq.br/1360403201088680 
OrcID: orcid.org/0000-0001-8232-6722   -   ResearcherID: A-5790-2016
Researchgate: www.researchgate.net/profile/Alexandre_Santos10                       
LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
<a class="moz-txt-link-freetext" href="Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/">Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
======================================================================
Em 05/11/2018 16:07, Rodrigo Ângelo escreveu:
Olá, Alexandre

Tente criar um novo data.frame para o resultado e iterar pelos valores de Amb:

Repare que o parâmetro "na.rm = T" do comando sd irá desconsiderar os registros com rate = NA no cálculo do desvio padrão.

d$Amb = factor(d$Amb)
ambs = levels(d$Amb)

resultado = data.frame(
  State = character()
  , Amb = character()
  , Year = integer()
  , rate = double()
  , desv_pad = double())

# quantas vezes irá realizar o experimento:
# "sortear 5 linhas dentro de cada variável Amb e calcular o desvio padrão da variável rate"
repeticoes = 2

for(amb in ambs) {
  subpopulacao = d[d$Amb == amb]
  for (i in 1:repeticoes) {
    amostra = subpopulacao[sample(NROW(subpopulacao), 5),]
    amostra$desv_pad = sd(amostra$rate, na.rm = T)
    resultado = rbind(resultado, amostra)
  }
}

Atenciosamente,
Rodrigo Ângelo

On Mon, Nov 5, 2018 at 2:38 PM ASANTOS por (R-br) <[hidden email]> wrote:
Prezados Membros,

     Segue um exemplo do que estou tentando fazer:

#Tenho um banco de dados d com 4 variáveis (State, Amb, Year e rate)

library(data.table)
d  <- fread ("
            State    Amb         Year    rate
            GA       soil        2015     .4
            GA       soil        2015     .4
            GA       soil        2015     .5
            GA       soil        2015     .2
            GA       soil        2015     .3
            GA       soil        2015     NA
            GA       soil        2016     1.0
            GA       soil        2016     2.0
            GA       soil        2016      .5
            GA       soil        2016     1.0
            GA       veg         2015     .4
            GA       veg         2015     .4
            GA       veg         2015     .5
            GA       veg         2015     .2
            GA       veg         2015     .3
            GA       veg         2015     NA
            GA       veg         2016     1.0
            GA       veg         2016     2.0
            GA       veg         2016      .5
            GA       veg         2016     1.0
            ")
#

  Gostaria de sortear 5 linhas dentro de cada variável Amb, calcular o
desvio padrão da variável rate e repetir
  os valores obtidos nas linhas envolvidas em uma nova coluna (desv_pad)
ao fim cada sorteio, sendo meu output desejado em um sorteio hipotético:

      State  Age Year rate desv_pad
  1:    GA soil 2015  0.4   0.7549834
  2:    GA soil 2015  0.4   0.7549834
  3:    GA soil 2015  0.5   0.3082207
  4:    GA soil 2015  0.2   0.3082207
  5:    GA soil 2015  0.3   0.3082207
  6:    GA soil 2015   NA   0.7549834
  7:    GA soil 2016  1.0   0.7549834
  8:    GA soil 2016  2.0   0.7549834
  9:    GA soil 2016  0.5   0.3082207
10:    GA soil 2016  1.0   0.3082207
11:    GA  veg 2015  0.4   0.580517
12:    GA  veg 2015  0.8   0.8736895
13:    GA  veg 2015  0.5   0.580517
14:    GA  veg 2015  1.5   0.580517
15:    GA  veg 2015  0.3   0.8736895
16:    GA  veg 2015   NA   0.8736895
17:    GA  veg 2016  1.0   0.580517
18:    GA  veg 2016   NA   0.8736895
19:    GA  veg 2016  2.0   0.8736895
20:    GA  veg 2016  1.7   0.580517

  Alguém teria uma dica de como resolver isso?

  Obrigado

--
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: <a href="tel:+55%2065%2099686-6970" value="+5565996866970" target="_blank" moz-do-not-send="true">(+55) 65 99686-6970 (VIVO) <a href="tel:+55%2065%203221-2674" value="+556532212674" target="_blank" moz-do-not-send="true">(+55) 65 3221-2674 (FIXO)
[hidden email]
         [hidden email]
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722   -   ResearcherID: A-5790-2016
Researchgate: www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
======================================================================

_______________________________________________
R-br mailing list
[hidden email]
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 fornea cdigo mnimo reproduzvel.


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