[R] Odp: nice way to find or not a value (problem with numeric(0))

Petr PIKAL petr.pikal at precheza.cz
Wed Mar 4 09:35:09 CET 2009


Hi

r-help-bounces at r-project.org napsal dne 04.03.2009 09:11:06:

> 
> Hello,
> 
> I have a data.frame called spec containing data about samples. But I 
don't
> have these data for all my samples.
> So if I have data (that is code of the sample is in spec$Code), I would 
like
> to assign data1 to the variable m.
> If I don't have this data, I would like to assign 1 to m.
> 
> I tried this : 
> m<-spec$data1[spec$Code==code]*(code %in%specmodules$Code) + 1*(!code 
%in%
> specmodules$Code) 
> 
> It works when I have the data but if it is not the case I get numeric(0)
> instead of 1.
> 
> I finally use the following command. It works but I'm sure there is a 
more
> elegant way.
> if (code %in%spec$Code) m<-spec$data1[spec$Code==code] else m<-1

It is a bit cryptic what do you want. Above version shall not work as it 
takes only one logical value but you probably have vector of values. (We 
do not know code, spec$Code or any other data you have).

when I try your first construction with some values I have I get sensible 
results so without trying to find out how your data really look like I 
suggest you to inspect it more closely and/or provide some working example 
demonstrating what you did, what is the result and how the result shall 
look like.

zdrz$sklon*zdrz$otac %in% c(.6,1.2,2)+1*!(zdrz$otac %in% c(.6,1.2,2))
 [1] 110  80  50  50  10   1 120  80  50  20
zdrz$otac[5]<-NA
zdrz$sklon*zdrz$otac %in% c(.6,1.2,2)+1*!(zdrz$otac %in% c(.6,1.2,2))
 [1] 110  80  50  50   1   1 120  80  50  20
zdrz$sklon[4]<-Inf
zdrz$sklon*zdrz$otac %in% c(.6,1.2,2)+1*!(zdrz$otac %in% c(.6,1.2,2))
 [1] 110  80  50 Inf   1   1 120  80  50  20
zdrz$sklon[4]<-NA
zdrz$sklon*zdrz$otac %in% c(.6,1.2,2)+1*!(zdrz$otac %in% c(.6,1.2,2))
 [1] 110  80  50  NA   1   1 120  80  50  20

Regards
Petr

> 
> Is there a way to avoid an if-test ?
> 
> Thanks for your help,
> Have a good day,
> Ptit Bleu.
> 
> -- 
> View this message in context: 
http://www.nabble.com/nice-way-to-find-or-not-a-
> value-%28problem-with-numeric%280%29%29-tp22325406p22325406.html
> Sent from the R help mailing list archive at Nabble.com.
> 
> ______________________________________________
> 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.




More information about the R-help mailing list