[R] data.frame into list by columns; merge and row.names
Tiago R Magalhaes
tiago17 at socrates.Berkeley.EDU
Sat Feb 12 09:17:03 CET 2005
Hi
a)
I want to make a list out of a data.frame, where each element of the
list is a column of the data.frame.
I looked in the archives and saw a lot of postings but surprsingly
none elucidated me. I also tried the split, aggregate help files and
counldn't see any easy way to do this. I wouldn't be surprised if
it's there, but I really didn't see it.
I solved the problem using a very convoluted way:
x <- data.frame(a=sample(10), b=sample(10), c=sample(10))
f <- factor(names(x), levels=names(x))
xx <- data.frame(f=f, t(x))
xlist.transpose <- split(xx, xx$f)
xlist <- lapply(xlist, function(x) x=t(x))
I am very convinced there's a much easier way, so if any of you
people enlighten me I would appreciate
b)
In terms of my own personal use, it would be much better that merge
when using 'row.names' as the by argument would output a data.frame
with the merged row.names and not a column 'Row.names'.
Also it would be great if it would be possible to choose wich sorting
would be the final one - right now the default is argument y, but
sometimes argument x is much more useful
Of course these are minor points and can be dealt very easily after
calling merge, but here it goes my comment anyway.
More information about the R-help
mailing list