[R] If else in R code

Peter Dalgaard p.dalgaard at biostat.ku.dk
Fri Feb 8 08:12:52 CET 2008


Simon Blomberg wrote:
> How about:
>
> a<-c("2001-02-1",NA,NA)
> b<-c("2001-03-1","2001-03-2","2001-03-3")
>
>  res <- ifelse(is.na(a), as.character(as.Date(b)-2),
> as.character(as.Date(a)))
> res
>
> Or with no ifelse:
>
>  res <- a
>  res[is.na(a)] <- as.character(as.Date(b[is.na(a)])-2)
>  res
>
>   
What's up with the as.character stuff?

 res <- a
 res[is.na(res)] <- b[is.na(res)]-2

with ifelse, you have the annoyance that it strips attributes, so you 
need something like

 res <- ifelse(is.na(a),b-2, a)
 class(res) <- "Date"
 res




> Cheers,
>
> Simon.
>
> On Fri, 2008-02-08 at 14:23 +1300, Andrew McFadden wrote:
>   
>> Hi There 
>>
>> I am a new user of "R" and having a few problems
>>
>> a<-c("2001-02-1","NA","NA")
>> a<-as.Date(a,format = "%Y-%m-%d")
>>
>> b<-c("2001-03-1","2001-03-2","2001-03-3")
>> b<-as.Date(b,format = "%Y-%m-%d")
>>
>> c<-data.frame(a,b)
>>
>> I would like to write an if statement where if "a" is not null return
>> "a", if "a" is null (NA) return "b" less two days. Could someone help?.
>>
>>
>> Andrew  
>>
>>
>>
>> ########################################################################
>> This email message and any attachment(s) is intended solely for the
>> addressee(s) named above. The information it contains is confidential
>> and may be legally privileged.  Unauthorised use of the message, or the
>> information it contains, may be unlawful. If you have received this
>> message by mistake please call the sender immediately on 64 4 8940100
>> or notify us by return email and erase the original message and
>> attachments. Thank you.
>>
>> The Ministry of Agriculture and Forestry accepts no responsibility for
>> changes made to this email or to any attachments after transmission from
>> the office.
>> ########################################################################
>>
>> 	[[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>     


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907



More information about the R-help mailing list