[R] Splitting a set of vectors in a list (Solved )
Henrique Dallazuanna
wwwhsd at gmail.com
Thu Mar 13 20:15:07 CET 2008
A example:
x <- rnorm(5)
x[3]
`[`(x, 3)
`[[`(x, 3)
x[3:4]
`[`(x, 3:4)
`[[`(x, 3:4) # Error
On 13/03/2008, John Kane <jrkrideau at yahoo.ca> wrote:
> Ah ?Extract. Thanks
>
> Unless I'm missing something there is nothing in the
> Usage or Examples to suggest to a naive reader like me
> that one can use an unbalanced [ or [[, that is
> withoug a corresponding ] or ]].
>
> I probably am just not understanding the details.
>
>
> --- Henrique Dallazuanna <wwwhsd at gmail.com> wrote:
>
> > On 13/03/2008, John Kane <jrkrideau at yahoo.ca> wrote:
> > > My thanks to Henrique Dallazuanna and Phil
> > Spector.
> > > Both solutions worked well.
> > > Phil suggested that an alterative to my function
> > would
> > > be
> > > vect1 = sapply(mylist,'[[',1)
> > > and I see that Henrique used `[` in his solution.
> > >
> > > Can you point me to some documentation that
> > discusses
> > > these usages. I have seen them before but I have
> > never
> > > actually figured out how to use them.?
> >
> > See ?Extract
> >
> > >
> > > Thanks.
> > >
> > > Problem and solutions
> > >
> >
> ========================================================
> > > mylist <- list(aa=c("cat","peach" ), bb=c("dog",
> > > "apple", "iron"),
> > > cc = c("rabbit", "orange", "zinc",
> > "silk"))
> > > myfun <- function(dff) dff[1]
> > > vect1 <- unlist(lapply(mylist, myfun))
> > >
> > > # Desired output
> > > t(cbind( c("cat" , "peach" , NA, NA), bbb <-
> > c("dog"
> > > , "apple" ,"iron", NA),
> > > ccb <- c("rabbit" ,"orange" ,"zinc" , "silk" )))
> > >
> > > # Phil Spector's approach
> > > mlen = max(sapply(mylist,length))
> > > eqlens = lapply(mylist,function(x)if(length(x) <
> > mlen)
> > >
> > > c(x,rep('',mlen-length(x))) else x)
> > > do.call(rbind,eqlens)
> > >
> > > # "Henrique Dallazuanna" <wwwhsd at gmail.com>
> > > # I added the t()
> > > t(as.data.frame(lapply(mylist, `[`,
> > > 1:max(unlist(lapply(mylist,
> > > length))))))
> > >
> > >
> > > Looking for the perfect gift? Give the gift
> > of Flickr!
> > >
> > > http://www.flickr.com/gift/
> > >
> > >
> >
> >
> > --
> > Henrique Dallazuanna
> > Curitiba-Paraná-Brasil
> > 25° 25' 40" S 49° 16' 22" O
> >
>
>
>
>
> ____________________________________________________
> Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now at
> http://ca.toolbar.yahoo.com.
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
More information about the R-help
mailing list