[R] if else condition - help

jim holtman jholtman at gmail.com
Sun May 22 22:47:06 CEST 2016


if you want to use 'ifelse', here is a way:


> k =
+ structure(c(0.0990217544905328, 1.60623837694539, -0.104331330281166,
+ -2.91485614212114, -0.108388742328104, -1.41670341534772,
-1.70609114096417,
+ 2.92018951284015, 0.201868946570178, 0.907637296638577,
-0.403004972105994,
+ -2.47718015803221, -0.354616729237253, -0.316113789733413,
1.01532974064126,
+ -2.69915170731852), .Dim = c(4L, 4L), .Dimnames = list(c("A",
+ "B", "C", "D"), c("C1", "C2", "C3", "C4")))
>
> # if you want to use 'ifelse', here is a way
>
> x <- ifelse(k > 1.5
+             , 1
+             , ifelse(k < -1.5
+                 , -1
+                 , 0
+                 )
+             )
>
> str(x)
 num [1:4, 1:4] 0 1 0 -1 0 0 -1 1 0 0 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:4] "A" "B" "C" "D"
  ..$ : chr [1:4] "C1" "C2" "C3" "C4"
> x
  C1 C2 C3 C4
A  0  0  0  0
B  1  0  0  0
C  0 -1  0  0
D -1  1 -1 -1
>




Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.

On Sun, May 22, 2016 at 1:58 PM, Adrian Johnson <oriolebaltimore at gmail.com>
wrote:

> Hi group:
> I am having difficulty with if else condition. I kindly request some help.
>
> I have a matrix k
>
> > k
>            C1         C2         C3         C4
> A  0.09902175 -0.1083887  0.2018689 -0.3546167
> B  1.60623838 -1.4167034  0.9076373 -0.3161138
> C -0.10433133 -1.7060911 -0.4030050  1.0153297
> D -2.91485614  2.9201895 -2.4771802 -2.6991517
>
> I want to convert values > 1.5 to 1, < -1.5 to -1 and rest to 0;
>
> > k1 - desired output
>            C1         C2         C3         C4
> A          0           0            0           0
> B           1          0            0           0
> C           0        -1             0           0
> D           -1        1            -1           -1
>
>
> I am trying with if else but cannot do it. I could only define one
> condition.  Could someone help how I can do this. I dont mean only if
> else, but any other way.
>
> k =
> structure(c(0.0990217544905328, 1.60623837694539, -0.104331330281166,
> -2.91485614212114, -0.108388742328104, -1.41670341534772,
> -1.70609114096417,
> 2.92018951284015, 0.201868946570178, 0.907637296638577, -0.403004972105994,
> -2.47718015803221, -0.354616729237253, -0.316113789733413,
> 1.01532974064126,
> -2.69915170731852), .Dim = c(4L, 4L), .Dimnames = list(c("A",
> "B", "C", "D"), c("C1", "C2", "C3", "C4")))
>
>
>
> k1 <- t(apply(k, 1, function(x) ifelse(x > 1.5,1,-1)))
>
> > k1
>   C1 C2 C3 C4
> A -1 -1 -1 -1
> B  1 -1 -1 -1
> C -1 -1 -1 -1
> D -1  1 -1 -1
>
>
>
> Thanks
> Adrian
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list