Felipe,
I get the results like this by running the code:
z <-read.table(text="date week length
7/13/2010 28 34
7/13/2010 28 35
7/14/2010 28 35
7/14/2010 28 35
7/14/2010 28 36
7/14/2010 28 36
7/20/2010 29 31
7/16/2010 29 34
7/18/2010 29 34
7/18/2010 29 34
7/21/2010 29 35
7/20/2010 29 36
7/21/2010 29 36
7/22/2010 29 36
7/16/2010 29 37
7/18/2010 29 37
7/20/2010 29 37
7/21/2010 29 37
7/21/2010 29 37
7/22/2010 29 37
7/22/2010 29 37",header=TRUE)
z$ID <- with(z,ave(seq_along(date),date,week,FUN=seq_along))
library(reshape2)
dcast(z,date+ID~week,value.var="length")[,-2]
??????? date 28 29
1? 7/13/2010 34 NA
2? 7/13/2010 35 NA
3? 7/14/2010 35 NA
4? 7/14/2010 35 NA
5? 7/14/2010 36 NA
6? 7/14/2010 36 NA
7? 7/16/2010 NA 34
8? 7/16/2010 NA 37
9? 7/18/2010 NA 34
10 7/18/2010 NA 34
11 7/18/2010 NA 37
12 7/20/2010 NA 31
13 7/20/2010 NA 36
14 7/20/2010 NA 37
15 7/21/2010 NA 35
16 7/21/2010 NA 36
17 7/21/2010 NA 37
18 7/21/2010 NA 37
19 7/22/2010 NA 36
20 7/22/2010 NA 37
21 7/22/2010 NA 37
##Also, didn't got any error with ?reshape()
If you don't want the `dates`, then:
?z$ID <- with(z,ave(seq_along(week),week,FUN=seq_along))
dcast(z,ID~week,value.var="length")[,-1]
?? 28 29
1? 34 31
2? 35 34
3? 35 34
4? 35 34
5? 36 35
6? 36 36
7? NA 36
8? NA 36
9? NA 37
10 NA 37
11 NA 37
12 NA 37
13 NA 37
14 NA 37
15 NA 37
A.K.
?
On Sunday, November 17, 2013 3:57 AM, Felipe Carrillo <mazatlanmexico at
yahoo.com> wrote:
Thanks Arun,
I
tried and got an error message, also the first line of code is showing
the date as column header but I only want the week as column header. You
can get rid of the date, I only need the week as column header and the
values below it.
?dcast(z,date+ID~week,value.var="length")[,-2]
? date 7/13/2010 7/14/2010 7/16/2010 7/18/2010 7/20/2010 7/21/2010 7/22/2010
1 2010??????? 28??????? 28??????? 29??????? 29??????? 29??????? 29??????? 29
2
2010??????? 28??????? 28??????? 29??????? 29??????? 29??????? 29??????? 29
3 2010??????? NA??????? 28??????? NA??????? 29??????? 29??????? 29??????? 29
4 2010??????? NA??????? 28??????? NA??????? NA??????? NA??????? 29???????
NA>
reshape(z,direction="wide",idvar=c("date","ID"),timevar="week")[,-2]
Error in `[.data.frame`(thistime, match(rval[, idvar], thistime[, idvar]),? :
? undefined columns selected
My dataset?based on the "z" dataset should look like this:
28???? 29? <<<<<Column headers
35???? 31
35???? 34
35???? 34
36?????35
36???? 36
???????? 36
???????? 36
???????? 37
???????? 37
???????? 37
???????? 37
???????? 37
???????? 37
???????? 37
Felipe D. Carrillo
Supervisory Fishery Biologist
Department of the Interior
US Fish & Wildlife Service
California, USA
http://www.fws.gov/redbluff/rbdd_jsmp.aspx
On Sunday, November 17, 2013 12:27 AM, arun <smartpink111 at yahoo.com>
wrote:
HI Felipe,>May be this works for you:
>z$ID <- with(z,ave(seq_along(date),date,week,FUN=seq_along))
>
>library(reshape2)
>dcast(z,date+ID~week,value.var="length")[,-2]
>
>#or
>reshape(z,direction="wide",idvar=c("date","ID"),timevar="week")[,-2]
>
>
>A.K.
>
>
>
>
>
>
>
>
>
>
>On Sunday, November 17, 2013 1:24 AM, Felipe Carrillo <mazatlanmexico at
yahoo.com> wrote:
>
>
>
>Hello Arun, I was wondering if you can help me with this question
>
>?How can I put the values of week(28,29) as column headers
>and put the corresponding length values on each week number?
>I heard about dcast but don't know how to use it yet.
>z <-read.table(text="date week length
>7/13/2010?? 28???? 34
>7/13/2010?? 28???? 35
>7/14/2010??
28???? 35>7/14/2010?? 28???? 35
>7/14/2010?? 28???? 36
>7/14/2010?? 28???? 36
>7/20/2010?? 29???? 31
>7/16/2010?? 29???? 34
>7/18/2010?? 29???? 34
>7/18/2010?? 29???? 34
>7/21/2010?? 29???? 35
>7/20/2010?? 29???? 36
>7/21/2010?? 29???? 36
>7/22/2010?? 29???? 36
>7/16/2010?? 29???? 37
>7/18/2010?? 29???? 37
>7/20/2010??
29????>37
>7/21/2010?? 29???? 37
>7/21/2010?? 29???? 37
>7/22/2010?? 29???? 37
>7/22/2010?? 29???? 37",header=TRUE)
>
>
>
>
>
>
>
>
>
>
>
>Felipe D. Carrillo
>Supervisory Fishery Biologist
>Department of the Interior
>US Fish & Wildlife Service
>California, USA
>http://www.fws.gov/redbluff/rbdd_jsmp.aspx
>
>