Hello:
I have a matrix 'dat' with 2 columns.
I have the following code:
for (i in 1:nrows(dat))
{
if (dat[i,1] < dat[i,2])
{
dat[i,2]<-0
}
else
{
dat[i,2]<-1
}
Is there a way to accomplish this without the for loop?
Thank you.
-Dhiren
On Fri, 07 Oct 2005 18:01:41 -0400 Dhiren DSouza wrote:> Hello: > > I have a matrix 'dat' with 2 columns. > > I have the following code: > > for (i in 1:nrows(dat)) > { > if (dat[i,1] < dat[i,2]) > { > dat[i,2]<-0 > } > > else > { > dat[i,2]<-1 > } > > Is there a way to accomplish this without the for loop?For this setting dat[,2] <- as.numeric(dat[,1] >= dat[,2]) seems to work. For more complicated tasks look at ifelse(). hth, Z> Thank you. > > -Dhiren > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html >
There a re a few ways to do it without loop. Here is one:
dat = matrix(runif(100), 50,2)
dat[,1] = dat[,1] >= dat[,2]
Jarek
====================================================\====
Jarek Tuszynski, PhD. o / \
Science Applications International Corporation <\__,|
(703) 676-4192 "> \
Jaroslaw.W.Tuszynski at saic.com ` \
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch]
Sent: Friday, October 07, 2005 6:02 PM
To: r-help at stat.math.ethz.ch
Subject: [R] matrix operation
Hello:
I have a matrix 'dat' with 2 columns.
I have the following code:
for (i in 1:nrows(dat))
{
if (dat[i,1] < dat[i,2])
{
dat[i,2]<-0
}
else
{
dat[i,2]<-1
}
Is there a way to accomplish this without the for loop?
Thank you.
-Dhiren
______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html