Grokbase Groups R r-help May 2016
FAQ

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 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]]

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 6 of 7 | next ›
Discussion Overview
groupr-help @
categoriesr
postedMay 22, '16 at 5:58p
activeMay 23, '16 at 7:46a
posts7
users6
websiter-project.org
irc#r

People

Translate

site design / logo © 2018 Grokbase