In an if statement, you can use only elements. In your example, news1o and s2o are vectors so there is a warning saying the two vectors have a bigger length than one.

If you don't send two messages about the same problem in two minutes, you can see what people answer you... For example, I advised you to use ifelse which works on vectors.


Alain


On 12-Jul-10 16:02, Raghu wrote:
I know the following may sound too basic but I thought the mailing list is
for the benefit of all levels of people. I ran a simple if statement on two
numeric vectors (news1o and s2o) which are of equal length. I have done an
str on both of them for your kind perusal below. I am trying to compare the
numbers in both and initiate a new vector s as 1 or 0 depending on if the
elements in the arrays are greater or lesser than each other. When I do a
simple s=(news1o>s2o) I get the values of S as a string of TRUEs and FALSEs
but when I try to override using the if statements this cribs. I get only
one element in s and that is a puzzle. Any ideas on this please? Many
thanks.


if(news1o>s2o)(s<-1) else
+ (s<--1)
[1] -1
Warning message:
In if (news1o>  s2o) (s<- 1) else (s<- -1) :
   the condition has length>  1 and only the first element will be used
s
[1] -1
length(s)
[1] 1
  str(news1o)
  num [1:3588] 891 890 890 888 886 ...
str(s2o)
  num [1:3588] 895 892 890 888 885 ...





--
Alain Guillet
Statistician and Computer Scientist

SMCS - IMMAQ - Université catholique de Louvain
Bureau c.316
Voie du Roman Pays, 20
B-1348 Louvain-la-Neuve
Belgium

tel: +32 10 47 30 50

______________________________________________
[email protected] 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.

Reply via email to