[R-br] RES: Criar uma coluna de lancamentos de pesca

Humberto Hazin hhazin em gmail.com
Quarta Maio 11 20:17:50 BRT 2016


Ola eder,

 

Mais uma vez obrigado e desculpa te incomodar de novo o problema é que esta um pouco estranho e diferente do teu resultado. Segue abaixo a partir do ponto amarelo deveria repetir 1 2 3...e não 16 17....

 

      set.day setyear setmonth      boat lance

20404      14    1999       12 ACECHADOR     1

20422      15    1999       12 ACECHADOR     2

20403      17    1999       12 ACECHADOR     3

20467      18    1999       12 ACECHADOR     4

20466      19    1999       12 ACECHADOR     5

20465      20    1999       12 ACECHADOR     6

20473      21    1999       12 ACECHADOR     7

20469      22    1999       12 ACECHADOR     8

20468      23    1999       12 ACECHADOR     9

20475      25    1999       12 ACECHADOR    10

20470      26    1999       12 ACECHADOR    11

20471      27    1999       12 ACECHADOR    12

20472      28    1999       12 ACECHADOR    13

20474      29    1999       12 ACECHADOR    14

20476      30    1999       12 ACECHADOR    15

26605       7    2000        1 ACECHADOR    16

26592       8    2000        1 ACECHADOR    17

26601       9    2000        1 ACECHADOR    18

26603      10    2000        1 ACECHADOR    19

26589      11    2000        1 ACECHADOR    20

25991      12    2000        1 ACECHADOR    21

 

 

De: ecomunel em gmail.com [mailto:ecomunel em gmail.com] Em nome de Éder Comunello
Enviada em: quarta-feira, 11 de maio de 2016 18:48
Para: Humberto Hazin <hhazin em gmail.com>
Cc: r-br em listas.c3sl.ufpr.br
Assunto: Re: [R-br] Criar uma coluna de lancamentos de pesca

 

Humberto,

 

Você poderia ordenar o banco antes de rodar: df <- df[with(df, order(boat, ano, mes, dia)),]

 

Ou modificar o código. Uma possibilidade:

 

 

### <code r>

df <- read.table(text=

"dia mes  ano  boat 

13   1    2005 AGIOS.NIKOLAUS 

10   1    2005 AGIOS.NIKOLAUS 

11   1    2005 AGIOS.NIKOLAUS 

12   1    2005 AGIOS.NIKOLAUS 

9    1    2005 AGIOS.NIKOLAUS

10   1    2005 X    

9    1    2005 X    

12   1    2005 X    

13   1    2005 Y    

11   1    2005 Y", head=T, as.is <http://as.is> =T)

 

df$lance <- NA

df

 

for (boat in unique(df$boat)) {

     sel <- which(df$boat==boat)

     ord <- with(df[sel,], order(dia, mes, ano))

     df[sel[ord], "lance"] <- 1:length(sel)

}

 

df

#    dia mes  ano           boat lance

# 1   13   1 2005 AGIOS.NIKOLAUS     5

# 2   10   1 2005 AGIOS.NIKOLAUS     2

# 3   11   1 2005 AGIOS.NIKOLAUS     3

# 4   12   1 2005 AGIOS.NIKOLAUS     4

# 5    9   1 2005 AGIOS.NIKOLAUS     1

# 6   10   1 2005              X     2

# 7    9   1 2005              X     1

# 8   12   1 2005              X     3

# 9   13   1 2005              Y     2

# 10  11   1 2005              Y     1

### </code>

 

 

 




​

================================================
Éder Comunello

Agronomist (UEM), MSc in Environ. Sciences (UEM)

DSc in Agricultural Systems Engineering (USP/Esalq)

Brazilian Agricultural Research Corporation (Embrapa)

Dourados, MS, Brazil |<O>|

================================================

GEO, -22.2752, -54.8182, 408m

UTC-04:00 / DST: UTC-03:00

 

 

 

 

Em 11 de maio de 2016 14:39, Humberto Hazin <hhazin em gmail.com <mailto:hhazin em gmail.com> > escreveu:

Muito obrigado Rodrigo e Elder,

parcialmente o problema foi resolvido, entretanto olhando o resultado abaixo do código do Elder no meu banco de dados teria que estar classificado dia mês ano barco para que a sequência de lances darem certos correto? Ou pode ser incluída no código?  Olhando o exemplo que esta em amarelo por exemplo o lance 3 deveria ser o lance 2.

 

    set.day setyear setmonth              boat lance
1         2    1978        8 SUMIYOSHI.MARU.32     1
2         4    1978        8      SEIKO.MARU.8     1
3        16    1978        4 SUMIYOSHI.MARU.32     2
4        13    1978        4 SUMIYOSHI.MARU.32     3
5        23    1978        9      SEIKO.MARU.8     2
6         7    1978       10 SUMIYOSHI.MARU.32     4
7        27    1978        1 SUMIYOSHI.MARU.32     5
8        10    1978        1  SUMIYOSHI.MARU.8     1

 

 

 

 

De: R-br [mailto:r-br-bounces em listas.c3sl.ufpr.br <mailto:r-br-bounces em listas.c3sl.ufpr.br> ] Em nome de Éder Comunello
Enviada em: quarta-feira, 11 de maio de 2016 11:23
Para: r-br em listas.c3sl.ufpr.br <mailto:r-br em listas.c3sl.ufpr.br> 
Assunto: Re: [R-br] Criar uma coluna de lancamentos de pesca

 

Humberto, bom dia!

 

Segue uma uma sugestão, sem considerar que possa haver duplicidade...

 

### <code r>

df <- read.table(text=

"dia mes  ano  boat 

9    1    2005 AGIOS.NIKOLAUS 

10   1    2005 AGIOS.NIKOLAUS 

11   1    2005 AGIOS.NIKOLAUS 

12   1    2005 AGIOS.NIKOLAUS 

13   1    2005 AGIOS.NIKOLAUS

9    1    2005 X    

10   1    2005 X    

11   1    2005 X    

12   1    2005 Y    

13   1    2005 Y", head=T, as.is <http://as.is> =T)

 

df$lance <- NA

df

 

for (boat in unique(df$boat)) {

     sel <- which(df$boat==boat)

     df[sel, "lance"] <- 1:length(sel)

}

 

df

#    dia mes  ano           boat lance

# 1    9   1 2005 AGIOS.NIKOLAUS     1

# 2   10   1 2005 AGIOS.NIKOLAUS     2

# 3   11   1 2005 AGIOS.NIKOLAUS     3

# 4   12   1 2005 AGIOS.NIKOLAUS     4

# 5   13   1 2005 AGIOS.NIKOLAUS     5

# 6    9   1 2005              X     1

# 7   10   1 2005              X     2

# 8   11   1 2005              X     3

# 9   12   1 2005              Y     1

# 10  13   1 2005              Y     2

### </code>




​

================================================
Éder Comunello

Agronomist (UEM), MSc in Environ. Sciences (UEM)

DSc in Agricultural Systems Engineering (USP/Esalq)

Brazilian Agricultural Research Corporation (Embrapa)

Dourados, MS, Brazil |<O>|

================================================

GEO, -22.2752, -54.8182, 408m

UTC-04:00 / DST: UTC-03:00

 

 

 

 

Em 11 de maio de 2016 09:37, Humberto Hazin <hhazin em gmail.com <mailto:hhazin em gmail.com> > escreveu:

Olá pessoal,

 

Estou precisando criar uma coluna chamada lances. Onde cada lance corresponde a um dia, mês, ano e barco conforme o exemplo abaixo:

 


           dia

mes

ano

boat


9

1

2005

AGIOS.NIKOLAUS


10

1

2005

AGIOS.NIKOLAUS


11

1

2005

AGIOS.NIKOLAUS


12

1

2005

AGIOS.NIKOLAUS


13

1

2005

AGIOS.NIKOLAUS

 

 

Eu gostaria que a tabela ficasse dessa forma aqui 

 


dia

mes

ano

boat

Lance


9

1

2005

AGIOS.NIKOLAUS

1


10

1

2005

AGIOS.NIKOLAUS

2


11

1

2005

AGIOS.NIKOLAUS

3


12

1

2005

AGIOS.NIKOLAUS

4


13

1

2005

AGIOS.NIKOLAUS

5

 

 

Agradeço desde já

 

Humberto

 

 

 

 


_______________________________________________
R-br mailing list
R-br em listas.c3sl.ufpr.br <mailto:R-br em listas.c3sl.ufpr.br> 
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.

 

 

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160511/43f8e892/attachment-0001.html>


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