[R] how to create a pivot table in r?

Marna Wagley m@rn@@w@g|ey @end|ng |rom gm@||@com
Thu Feb 6 17:48:28 CET 2020


Thank You Profs. Dalgaard and Barradas for the code, both codes worked
perfectly for the data and I am going to use it in my big data set.
Thanks once again.


On Thu, Feb 6, 2020 at 2:02 AM peter dalgaard <pdalgd using gmail.com> wrote:

> There is also
>
> > with(daT, tapply(as.character(ObsDate), list(id, ObsSite),
> function(x)format(list(x))))
>     site1                site4      site5      site7
> id1 NA                   NA         NA         "06/13/13"
> id2 NA                   NA         NA         "07/03/14, 05/17/14"
> id4 NA                   "05/08/14" NA         NA
> id5 NA                   NA         "06/13/14" NA
> id6 "05/30/14, 06/28/13" NA         NA         NA
> id7 NA                   NA         "06/25/13" NA
>
> ...with the added bonus that if you leave out the format() business, you
> get a data structure that doesn't print as nicely, but can be used for
> further computations:
>
> > with(daT, tapply(as.character(ObsDate), list(id, ObsSite), list,
> simplify=FALSE))
>     site1  site4  site5  site7
> id1 NULL   NULL   NULL   List,1
> id2 NULL   NULL   NULL   List,1
> id4 NULL   List,1 NULL   NULL
> id5 NULL   NULL   List,1 NULL
> id6 List,1 NULL   NULL   NULL
> id7 NULL   NULL   List,1 NULL
> > M <- with(daT, tapply(as.character(ObsDate), list(id, ObsSite), list,
> simplify=FALSE))
> > M[["id2", "site7"]]
> [[1]]
> [1] "07/03/14" "05/17/14"
>
> -pd
>
> > On 6 Feb 2020, at 01:37 , Marna Wagley <marna.wagley using gmail.com> wrote:
> >
> > daT<-structure(list(id = structure(c(1L, 2L, 2L, 3L, 4L, 5L, 5L, 6L
> > ), .Label = c("id1", "id2", "id4", "id5", "id6", "id7"), class =
> "factor"),
> >    ObsSite = structure(c(4L, 4L, 4L, 2L, 3L, 1L, 1L, 3L), .Label =
> > c("site1",
> >    "site4", "site5", "site7"), class = "factor"), ObsDate =
> > structure(c(4L,
> >    8L, 2L, 1L, 5L, 3L, 7L, 6L), .Label = c("05/08/14", "05/17/14",
> >    "05/30/14", "06/13/13", "06/13/14", "06/25/13", "06/28/13",
> >    "07/03/14"), class = "factor")), .Names = c("id", "ObsSite",
> > "ObsDate"), class = "data.frame", row.names = c(NA, -8L))
> > daT
> > daT$date <- mdy(daT$ObsDate)
>
> --
> Peter Dalgaard, Professor,
> Center for Statistics, Copenhagen Business School
> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Office: A 4.23
> Email: pd.mes using cbs.dk  Priv: PDalgd using gmail.com
>
>
>
>
>
>
>
>
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list