When I did it in S-Plus 6.1 and R 1.8.0, I didn't get NULL entries: I got NAs. There is a difference between NULLs and NAs. The NAs can be deleted using is.na, as follows:

> list.of.vectors <- list(a=1, b=1:3)
> x3 <- sapply(list.of.vectors, function(x)x[3])
> x3
a b
NA 3
> x3
a b
NA 3
> x3[!is.na(x3)]
b
3
>
Is this acceptable? spencer graves


Hadley Wickham wrote:

Hi,

I'm trying to subset a list which contains variable length vectors. What I want to do is extract (eg.) the 3rd item in each vector (with length >= 3). At the moment I'm using sapply(list.of.vectors, function(x) {x[3]}). The problem with this is that sapply returns a list of the same length of list.of.vectors so I end up with a whole lot of null entries from those vectors that aren't long enough. I have a similar problem if I want to select all the vectors where the 3rd item is a specified value.

Does anyone have any better solutions?

Thanks for you help,

Hadley

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to