[R] which() and value replacement in a matrix

Petr Pikal petr.pikal at precheza.cz
Mon Oct 11 09:01:44 CEST 2004



On 9 Oct 2004 at 16:14, Patrick Giraudoux wrote:

> Thanks for the clue.
> 
> Actually the trouble comes when refering to a data.frame. If I use the
> matrix from the data.frame (matrix(mydataframe)), everything goes
> smoothly...
> 
> So I wrote:
> 
> indices<-which(myforetbin > 0,arr.ind=T)
> myforetbin<-as.matrix(myforetbin)
> myforetbin[indices]<-1
> myforetbin<-as.data.frame(myforetbin)
> 
> It works but I wonder if there are no more simple ways...

Hi.

Well, did you try directly:

indices<-myforetbin > 0
myforetbin[indices]<-1

It works for me with artificial data frame.

Cheers
Petr






> 
> All the best,
> 
> Patrick
> 
> 
> ----- Original Message ----- 
> From: "Liaw, Andy" <andy_liaw at merck.com>
> To: "'Patrick Giraudoux'" <patrick.giraudoux at univ-fcomte.fr>; "r-help"
> <r-help at stat.math.ethz.ch> Sent: Saturday, October 09, 2004 3:00 PM
> Subject: RE: [R] which() and value replacement in a matrix
> 
> 
> > Use the index vector directly, rather than breaking it up:
> >
> > > x <- matrix(sample(30), 10, 3)
> > > idx <- which(x > 25, arr.ind=TRUE)
> > > idx
> >      row col
> > [1,]   6   1
> > [2,]   9   1
> > [3,]   4   2
> > [4,]   6   2
> > [5,]   4   3
> > > x[idx] <- 999
> > > x
> >       [,1] [,2] [,3]
> >  [1,]    7   14   16
> >  [2,]   20   24    8
> >  [3,]   17   18   11
> >  [4,]   19  999  999
> >  [5,]   23    4   15
> >  [6,]  999  999    5
> >  [7,]   21    9   12
> >  [8,]   22    2    3
> >  [9,]  999   13    1
> > [10,]    6   10   25
> >
> > HTH,
> > Andy
> >
> > > From: Patrick Giraudoux
> > >
> > > Hi,
> > >
> > > I cannot go through the archives with which() as key-word...
> > > so common. Though I am sure to have seen something about this
> > > subject in the past could somebody put me on the track. I have a
> > > matrix (actually a data.frame) in which I would replace the
> > > non-null values by 1.
> > >
> > > I tried the following:
> > >
> > > indices<-which(myforetbin > 0,arr.ind=T)
> > > myforetbin[indices[,1],indices[,2]]<-1
> > >
> > > and get the message:
> > >
> > > > myforetbin[indices[,1],indices[,2]]<-1
> > > Error in "[<-.data.frame"(`*tmp*`, indices[, 1], indices[,
> > > 2], value = 1) :
> > >         duplicate subscripts for columns
> > >
> > > I get the same with
> > >
> > > myforetbin[indices]<-1
> > >
> > > However, with:
> > >
> > > myforetbin[indices]
> > >
> > > I well get a vector with the corresponding non-null values.
> > >
> > > Can somebody put me on the track?
> > >
> > > All the best,
> > >
> > > Patrick
> > >
> > > ______________________________________________
> > > 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
> > >
> > >
> >
> >
> > --------------------------------------------------------------------
> > ---------- Notice:  This e-mail message, together with any
> > attachments, contains information of Merck & Co., Inc. (One Merck
> > Drive,
> Whitehouse Station, New Jersey, USA 08889), and/or its affiliates
> (which may be known outside the United States as Merck Frosst, Merck
> Sharp & Dohme or MSD and in Japan, as Banyu) that may be confidential,
> proprietary copyrighted and/or legally privileged. It is intended
> solely for the use of the individual or entity named on this message. 
> If you are not the intended recipient, and have received this message
> in error, please notify us immediately by reply e-mail and then delete
> it from your system. >
> ----------------------------------------------------------------------
> --------
> 
> ______________________________________________
> 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

Petr Pikal
petr.pikal at precheza.cz




More information about the R-help mailing list