简体   繁体   中英

R list get first item of each element

This should probably be very easy for someone to answer but I have had no success on finding the answer anywhere.

I am trying to return, from a list in R, the first item of each element of the list.

> a
[1] 1 2 3
> b
[1] 11 22 33
> c
[1] 111 222 333
> d <- list(a = a,b = b,c = c)
> d
$a
[1] 1 2 3

$b
[1] 11 22 33

$c
[1] 111 222 333

Based on the construction of my list d above, I want to return a vector with three values:

return  1 11 111

You can do

 output <- sapply(d, function(x) x[1])

If you don't need the names

 names(output) <- NULL

sapply(d, "[[", 1) should do the trick.

A bit of explanation:

sapply : iterates over the elements in the list
[[ : is the subset function. So we are asking sapply to use the subset function on each list element.
1 : is an argument passed to "[["

It turns out that "[" or "[[" can be called in a traditional manner which may help to illustrate the point:

x <- 10:1
"["(x, 3)
 # [1] 8

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM