Skip to content

how to use list index to get vector

5 messages · Gabor Grothendieck, Luke

#
I have a simple question, but I couldn't find the answer in R manuals.

Assume I have a list:
[[1]]
[1] 1 2 3

[[2]]
[1] 11 22 33

[[3]]
[1] 111 222 333

How to use list index to get a vector of, say, the first elements of
list elements?
That is, how to get a vector c(1, 11, 111) from foo?

foo[[]][1] doesn't work.

-Luke
#
On 5/16/05, Luke <jyzz88 at gmail.com> wrote:
Try this:

sapply(foo, "[", 1)
#
Yes, it works. Althought I can understand the help page of sapply,  I
don't know why it works.  What is "["?

-Luke
On 5/16/05, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
#
Its the indexing function written in ordinary function form.  That is, 
foo[1:2] can be written as "["(foo, 1:2)
On 5/16/05, Luke <jyzz88 at gmail.com> wrote:
#
Hi Gabor, thanks a lot. I understand it now. But Andrew's method is
easier for me to understand. Can I extend my question? I have a data
file, every line has such format:
2:102 5:85 ...
The number before colon is data entry index, the number after colon is
data entry value, and other data entries are zero. I use scan to read
them in R and need to separate the index and value to different
vectors. For example:
[1] "2:102" "5:85"
[[1]]
[1] "2"   "102"

[[2]]
[1] "5"  "85"
or
[1] "2" "5"

Is this the simplest way to get the index or value vector?

-Luke
On 5/16/05, Gabor Grothendieck <ggrothendieck at gmail.com> wrote: