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

Lauri Nikkinen lauri.nikkinen at iki.fi
Thu Feb 21 19:22:40 CET 2008


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



More information about the R-help mailing list