[R] Tiny help for tiny function

2008-08-13 Thread Birgitle

I just started to write tiny functions and therefore I appologise in advance
if I am asking stupid question.

I wrote a tiny function to give me back from the original matrix, a matrix
showing only the values smaller -0.8 and bigger 0.8.

y<-c(0.1,0.2,0.3,-0.8,-0.4,0.9) 
x<-c(0.5,0.3,0.9,-0.9,-0.7,0.3)

 XY<-rbind(x,y)

extract.values<-function (x)
{
if(x>=0.8|x<=-0.8)x
else("low corr.")

}

works:

Test<-sapply(XY,extract.values,simplify=FALSE)

but now I try to solve the problem of having NA in the matrix.
I tried like that:

extract.values<-function (x)
{
if(x>=0.8|x<=-0.8|x==NA)x
else("low corr.")

}

woks not:

x<-c(0.5,0.3,0.9,-0.9,-0.7,0.3)
y<-c(0.1,0.2,NA,-0.8,-0.4,0.9)

XY<-rbind(x,y)

Testi<-sapply(XY,extract.values,simplify=FALSE)

Fehler in if (x >= 0.8 | x <= -0.8 | x == NA) x else ("low corr.") : 
  Fehlender Wert, wo TRUE/FALSE nötig ist

Error in if (x >= 0.8 | x <= -0.8 | x == NA) x else ("low corr.") : 
  Missing value, where TRUE/FALSE is needed

How can I do this right.

Thanks for help

B.

-
The art of living is more like wrestling than dancing.
(Marcus Aurelius)
-- 
View this message in context: 
http://www.nabble.com/Tiny-help-for-tiny-function-tp18963310p18963310.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@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.


Re: [R] Tiny help for tiny function

2008-08-13 Thread Henrique Dallazuanna
You can do this:

ifelse(XY >= 0.8 | XY <= -0.8 | is.na(XY), XY, "low corr")

On 8/13/08, Birgitle <[EMAIL PROTECTED]> wrote:
>
> I just started to write tiny functions and therefore I appologise in advance
> if I am asking stupid question.
>
> I wrote a tiny function to give me back from the original matrix, a matrix
> showing only the values smaller -0.8 and bigger 0.8.
>
> y<-c(0.1,0.2,0.3,-0.8,-0.4,0.9)
> x<-c(0.5,0.3,0.9,-0.9,-0.7,0.3)
>
>  XY<-rbind(x,y)
>
> extract.values<-function (x)
> {
> if(x>=0.8|x<=-0.8)x
> else("low corr.")
>
>}
>
> works:
>
> Test<-sapply(XY,extract.values,simplify=FALSE)
>
> but now I try to solve the problem of having NA in the matrix.
> I tried like that:
>
> extract.values<-function (x)
> {
> if(x>=0.8|x<=-0.8|x==NA)x
> else("low corr.")
>
>}
>
> woks not:
>
> x<-c(0.5,0.3,0.9,-0.9,-0.7,0.3)
> y<-c(0.1,0.2,NA,-0.8,-0.4,0.9)
>
> XY<-rbind(x,y)
>
> Testi<-sapply(XY,extract.values,simplify=FALSE)
>
> Fehler in if (x >= 0.8 | x <= -0.8 | x == NA) x else ("low corr.") :
>  Fehlender Wert, wo TRUE/FALSE nötig ist
>
> Error in if (x >= 0.8 | x <= -0.8 | x == NA) x else ("low corr.") :
>  Missing value, where TRUE/FALSE is needed
>
> How can I do this right.
>
> Thanks for help
>
> B.
>
> -
> The art of living is more like wrestling than dancing.
> (Marcus Aurelius)
> --
> View this message in context: 
> http://www.nabble.com/Tiny-help-for-tiny-function-tp18963310p18963310.html
> Sent from the R help mailing list archive at Nabble.com.
>
> __
> R-help@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.
>


-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

__
R-help@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.


Re: [R] Tiny help for tiny function

2008-08-13 Thread Birgitle

Many thanks.

Much easier than my solution

B.


Birgitle wrote:
> 
> I just started to write tiny functions and therefore I appologise in
> advance if I am asking stupid question.
> 
> I wrote a tiny function to give me back from the original matrix, a matrix
> showing only the values smaller -0.8 and bigger 0.8.
> 
> y<-c(0.1,0.2,0.3,-0.8,-0.4,0.9)   
> x<-c(0.5,0.3,0.9,-0.9,-0.7,0.3)
> 
>  XY<-rbind(x,y)
> 
> extract.values<-function (x)
> {
> if(x>=0.8|x<=-0.8)x
> else("low corr.")
>   
>   }
> 
> works:
> 
> Test<-sapply(XY,extract.values,simplify=FALSE)
> 
> but now I try to solve the problem of having NA in the matrix.
> I tried like that:
> 
> extract.values<-function (x)
> {
> if(x>=0.8|x<=-0.8|x==NA)x
> else("low corr.")
>   
>   }
> 
> woks not:
> 
> x<-c(0.5,0.3,0.9,-0.9,-0.7,0.3)
> y<-c(0.1,0.2,NA,-0.8,-0.4,0.9)
> 
> XY<-rbind(x,y)
> 
> Testi<-sapply(XY,extract.values,simplify=FALSE)
> 
> Fehler in if (x >= 0.8 | x <= -0.8 | x == NA) x else ("low corr.") : 
>   Fehlender Wert, wo TRUE/FALSE nötig ist
> 
> Error in if (x >= 0.8 | x <= -0.8 | x == NA) x else ("low corr.") : 
>   Missing value, where TRUE/FALSE is needed
> 
> How can I do this right.
> 
> Thanks for help
> 
> B.
> 


-
The art of living is more like wrestling than dancing.
(Marcus Aurelius)
-- 
View this message in context: 
http://www.nabble.com/Tiny-help-for-tiny-function-tp18963310p18963906.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@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.