Try this:


data.frame(split(x$Jem, factor(x$name, levels = unique(x$name))),
check.names = FALSE)

third question:

unstack(x, as.formula(sprintf('%s ~ name', wantedName)))


On Mon, Oct 18, 2010 at 12:47 PM, <Murali.Menon@avivainvestors.com> wrote:

> Folks,
>
> I have the following dataframe:
>
> > x <- structure(list(name = c("EU B", "EU B", "EU B", "EU B", "EU B",
> "EU B", "AU A", "AU A", "AU A", "AU A", "AU A", "AU A"), date =
> c("2010-10-11",
> "2010-10-12", "2010-10-13", "2010-10-14", "2010-10-15", "2010-10-18",
> "2010-10-11", "2010-10-12", "2010-10-13", "2010-10-14", "2010-10-15",
> "2010-10-18"), Jem = c(1.3924, 1.3888, 1.3867, 1.3949, 1.4054,
> 1.3992, 0.9864, 0.9859, 0.9842, 0.9919, 0.9925, 0.9901), Bim = c(1.3888,
> 1.3867, 1.3949, 1.4054, 1.3977, 1.3917, 0.9859, 0.9842, 0.9919,
> 0.9925, 0.9907, 0.9881)), .Names = c("name", "date", "Jem", "Bim"
> ), row.names = c(1L, 2L, 3L, 4L, 5L, 8L, 9L, 10L, 11L, 12L, 13L,
> 16L), na.action = structure(c(6L, 7L, 14L, 15L), .Names = c("6",
> "7", "14", "15"), class = "omit"), class = "data.frame")
>
> > x
>   name       date    Jem    Bim
> 1  EU B 2010-10-11 1.3924 1.3888
> 2  EU B 2010-10-12 1.3888 1.3867
> 3  EU B 2010-10-13 1.3867 1.3949
> 4  EU B 2010-10-14 1.3949 1.4054
> 5  EU B 2010-10-15 1.4054 1.3977
> 8  EU B 2010-10-18 1.3992 1.3917
> 9  AU A 2010-10-11 0.9864 0.9859
> 10 AU A 2010-10-12 0.9859 0.9842
> 11 AU A 2010-10-13 0.9842 0.9919
> 12 AU A 2010-10-14 0.9919 0.9925
> 13 AU A 2010-10-15 0.9925 0.9907
> 16 AU A 2010-10-18 0.9901 0.9881
>
> I'm trying to collapse the frame so that I get columns of names:
>
> > unstack(x, Jem ~ name)
>    AU.A   EU.B
> 1 0.9864 1.3924
> 2 0.9859 1.3888
> 3 0.9842 1.3867
> 4 0.9919 1.3949
> 5 0.9925 1.4054
> 6 0.9901 1.3992
>
> Three questions:
>
> 1. The column names are converted from "EU B" to "EU.B" - how to preserve
> the original names?
>
> 2. The column names are sorted alphabetically - how to preserve the
> original order? I tried
>
> > unstack(x, terms(Jem ~ name, keep.order = TRUE))
>
> but it doesn't really do anything.
>
> 3. If I declare a variable wantedName <- 'Jem', how can I use it to perform
> the unstack:
>
> > unstack(x, `wantedName` ~ name)
> Error in tapply(eval(form[[2L]], x), eval(form[[3L]], x), as.vector) :
>  arguments must have same length
>
>
> Thanks,
> Murali
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

	[[alternative HTML version deleted]]

