# [R] If NA Problem!

Peter Ehlers ehlers at ucalgary.ca
Fri Sep 2 17:21:35 CEST 2011

```On 2011-09-02 05:16, Anna Dunietz wrote:
> Hi All!
>
> Please find code and the respective lists below.  My problem: I specify the
> case that lilwin[[p]] is not an NA and want the code found in iwish to be
> returned ONLY for that case.  Why do I get a list of length 2 (and why is
> NULL the first element)? I understand that the code below is quite
> senseless.  I have run into a problem while working on a large project and
> wanted to simplify it in order for it to be more understandable and
> accessible.  If I should not be using the if function, please let me know
> what I should be doing instead.  I know that I must use the for function for
> my project.  The thing I most want to understand is how, after specifying a
> certain condition, one may save certain data that occurs when that condition
> is met.   I hope I have been clear enough!
>
> Thank you very much for your help!
> Anna
>
> biglist<-list(a=1:4,b=2:6)
> lilwin<-list(x=NA,y=2)
> lilloss<-list(m=1,n=3)
>
>
>
>> biglist\$a
> [1] 1 2 3 4
>
> \$b
> [1] 2 3 4 5 6
>> lilwin\$x
> [1] NA
>
> \$y
> [1] 2
>> lilloss\$m
> [1] 1
>
> \$n
> [1] 3
>
>
> iwish<-list()
> for(p in 1:length(biglist)){
> if(is.na(lilwin[[p]])==F) iwish[p]<-list(biglist[[p]][lilwin[[p]]])
> }
>
>
>> iwish[[1]]
> NULL
>
> [[2]]
> [1] 3

Jean has given you one fix. Here's another (see ?'c'):

iwish<-list()
for(p in seq_along(biglist)){
if(!is.na(lilwin[[p]]))
iwish <- c(iwish, biglist[[p]][lilwin[[p]]])
}

BTW, it's not a good idea to use 'F' instead of FALSE and the
negation operator is usually a better way to test.

Peter Ehlers

>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help