Skip to content

making a dataframe out of lapply() result

5 messages · Remko Duursma, Spencer Graves, Roger D. Peng +2 more

#
Dear R-helpers,

i have a question on how to vectorize this problem:

i have a dataframe:

tester <- data.frame(groups=c("A","A","B","B","C","C"), one=c(1,1,2,2,3,3), two=c(6,6,7,7,8,8))

# i split it into a list
tester.L <- split(tester, tester$groups)

# And want to keep only the first item in each:
lapply(tester.L, function(x) x <- x[1,] )


How do i make a dataframe out of the last result, which looks like "tester", without looping? (i can use rbind in a for loop, but is rather slow)

thanks for your help,

Remko Duursma


____________________________________________________________
Get advanced SPAM filtering on Webmail or POP Mail ... Get Lycos Mail!
#
one=c(1,1,2,2,3,3), two=c(6,6,7,7,8,8))
 > tester.L <- split(tester, tester$groups)
 > as.data.frame(lapply(tester.L, function(x) x <- unlist(x[1,] )))
        A B C
groups 1 2 3
one    1 2 3
two    6 7 8

How's this?
Spencer Graves
Remko Duursma wrote:
#
You could try:

s <- lapply(tester.L, function(x) x <- x[1,] )
do.call("rbind", s)

-roger
_______________________________
UCLA Department of Statistics
http://www.stat.ucla.edu/~rpeng
On Tue, 15 Apr 2003, Remko Duursma wrote:

            
#
Remko Duursma wrote:
If you're always trying to get the unique rows, then just use unique():

 > tester
   groups one two
1      A   1   6
2      A   1   6
3      B   2   7
4      B   2   7
5      C   3   8
6      C   3   8
 > unique(tester)
   groups one two
1      A   1   6
3      B   2   7
5      C   3   8

Or use do.call("rbind", ...)

 > do.call("rbind", lapply(split(tester, tester$group),
+  function(x) x[1, ]))
   groups one two
A      1   1   6
B      2   2   7
C      3   3   8
 >

Or just for fun:

 > tester[which(!duplicated(tester$groups)), ]
   groups one two
1      A   1   6
3      B   2   7
5      C   3   8


Regards,
Sundar
#
you can try this,...
data.frame(t(sapply(tester.L, function(x) x <- x[1,]
)))

Mahbub.
--- Remko Duursma <den.duurs at lycos.com> wrote:
____________________________________________________________
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


__________________________________________________

The New Yahoo! Search - Faster. Easier. Bingo