[R] How to get names of a list into df:s?

Henrique Dallazuanna wwwhsd at gmail.com
Thu Feb 21 19:45:13 CET 2008


Try this:

g <- list(a=1:3, b=4:6, c=7:9)
with(stack(g), split(stack(g), ind))

On 21/02/2008, Lauri Nikkinen <lauri.nikkinen at iki.fi> wrote:
> R users,
>
>  I have a simple lapply question.
>
>  g <- list(a=1:3, b=4:6, c=7:9)
>  g <- lapply(g, function(x) as.data.frame(x))
>  lapply(g, function(x) cbind(x, var1 = rep(names(g), each=nrow(x))[1:nrow(x)]))
>
>  I get
>
>  $a
>   x var1
>  1 1    a
>  2 2    a
>  3 3    a
>
>  $b
>   x var1
>  1 4    a
>  2 5    a
>  3 6    a
>
>  $c
>   x var1
>  1 7    a
>  2 8    a
>  3 9    a
>
>  And I would like to have
>
>  $a
>   x var1
>  1 1    a
>  2 2    a
>  3 3    a
>
>  $b
>   x var1
>  1 4    b
>  2 5    b
>  3 6    b
>
>  $c
>   x var1
>  1 7    c
>  2 8    c
>  3 9    c
>
>  How should I modify my lapply clause to achieve this?
>
>  Best regards,
>  Lauri
>
>  > sessionInfo()
>  R version 2.6.1 (2007-11-26)
>  i386-apple-darwin8.10.1
>
>  locale:
>  C
>
>  attached base packages:
>  [1] stats     graphics  grDevices utils     datasets  methods   base
>
>  ______________________________________________
>  R-help at 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



More information about the R-help mailing list