Hi all, I've got a matrix of fractional data that is all positive and greater than zero that I would like to "loosely" classify, for lack of a better word. It looks something like this : 1.07 1.11 1.27 1.59 0.97 0.76 2.23 0.98 0.71 0.88 1.19 1.02 What I'm looking for is a way to round these numbers to the nearest 0.25, i.e. the above matrix would be transformed to : 1.00 1.00 1.25 1.50 1.00 0.75 2.25 1.00 0.75 1.00 1.25 1.00 Anyone have a clever way to do this?? Thanks in advance, Ken
Multiply by 4, round and divide by 4. a <- c(1.15,5.82) round(a*4,digits=0)/4 -----Original Message----- From: Ken Termiso [mailto:jerk_alert at hotmail.com] Sent: Wednesday, May 25, 2005 1:27 PM To: r-help at stat.math.ethz.ch Subject: [R] Rounding fractional numbers to nearest fraction Hi all, I've got a matrix of fractional data that is all positive and greater than zero that I would like to "loosely" classify, for lack of a better word. It looks something like this : 1.07 1.11 1.27 1.59 0.97 0.76 2.23 0.98 0.71 0.88 1.19 1.02 What I'm looking for is a way to round these numbers to the nearest 0.25, i.e. the above matrix would be transformed to : 1.00 1.00 1.25 1.50 1.00 0.75 2.25 1.00 0.75 1.00 1.25 1.00 Anyone have a clever way to do this?? Thanks in advance, Ken ______________________________________________ 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
Thx for the help... mdiv <- function(dec) { dec <- dec * 4 dec <- round(dec, 0) dec <- dec / 4 dec } where m is a matrix -- m1 <- apply(m, 1, mdiv) ...but it looks like as.integer(x.1*4)/4 or (round(x.1*4,0))/4 might be easier... thx again, ken>From: james.holtman at convergys.com >To: "Ken Termiso" <jerk_alert at hotmail.com> >Subject: Re: [R] Rounding fractional numbers to nearest fraction >Date: Wed, 25 May 2005 14:30:44 -0400 > > > > > > > x.1 > [1] 1.07 1.11 1.27 1.59 0.97 0.76 2.23 0.98 0.71 0.88 1.19 1.02 > > as.integer(x.1*4)/4 > [1] 1.00 1.00 1.25 1.50 0.75 0.75 2.00 0.75 0.50 0.75 1.00 1.00 > > > >Jim >__________________________________________________________ >James Holtman "What is the problem you are trying to solve?" >Executive Technical Consultant -- Convergys Labs >james.holtman at convergys.com >+1 (513) 723-2929 > > > > "Ken Termiso" > <jerk_alert at hotmail.c To: >r-help at stat.math.ethz.ch > om> cc: > Sent by: Subject: [R] Rounding >fractional numbers to nearest fraction > r-help-bounces at stat.m > ath.ethz.ch > > > 05/25/2005 13:27 > > > > > >Hi all, > >I've got a matrix of fractional data that is all positive and greater than >zero that I would like to "loosely" classify, for lack of a better word. It > >looks something like this : > >1.07 1.11 1.27 1.59 0.97 0.76 >2.23 0.98 0.71 0.88 1.19 1.02 > > >What I'm looking for is a way to round these numbers to the nearest 0.25, >i.e. the above matrix would be transformed to : > >1.00 1.00 1.25 1.50 1.00 0.75 >2.25 1.00 0.75 1.00 1.25 1.00 > > >Anyone have a clever way to do this?? > >Thanks in advance, >Ken > >______________________________________________ >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 > >
> From: Ken Termiso > > Thx for the help... > > mdiv <- function(dec) > { > dec <- dec * 4 > dec <- round(dec, 0) > dec <- dec / 4 > dec > } > > where m is a matrix -- > > m1 <- apply(m, 1, mdiv)You don't need the apply():> m <- matrix(runif(6), 2, 3) > m[,1] [,2] [,3] [1,] 0.6885473 0.4598892 0.2738169 [2,] 0.2393461 0.8863284 0.7891100> round(m * 4) / 4[,1] [,2] [,3] [1,] 0.75 0.5 0.25 [2,] 0.25 1.0 0.75> ...but it looks like as.integer(x.1*4)/4 or > (round(x.1*4,0))/4 might be > easier...Be careful: as.integer() trucate the fractional part (so as.integer(1.999) is 1 intead of 2), which may not be what you want. Andy> thx again, > ken > > >From: james.holtman at convergys.com > >To: "Ken Termiso" <jerk_alert at hotmail.com> > >Subject: Re: [R] Rounding fractional numbers to nearest fraction > >Date: Wed, 25 May 2005 14:30:44 -0400 > > > > > > > > > > > > > x.1 > > [1] 1.07 1.11 1.27 1.59 0.97 0.76 2.23 0.98 0.71 0.88 1.19 1.02 > > > as.integer(x.1*4)/4 > > [1] 1.00 1.00 1.25 1.50 0.75 0.75 2.00 0.75 0.50 0.75 1.00 1.00 > > > > > > >Jim > >__________________________________________________________ > >James Holtman "What is the problem you are trying to solve?" > >Executive Technical Consultant -- Convergys Labs > >james.holtman at convergys.com > >+1 (513) 723-2929 > > > > > > > > "Ken Termiso" > > <jerk_alert at hotmail.c To: > >r-help at stat.math.ethz.ch > > om> cc: > > Sent by: Subject: > [R] Rounding > >fractional numbers to nearest fraction > > r-help-bounces at stat.m > > ath.ethz.ch > > > > > > 05/25/2005 13:27 > > > > > > > > > > > >Hi all, > > > >I've got a matrix of fractional data that is all positive > and greater than > >zero that I would like to "loosely" classify, for lack of a > better word. It > > > >looks something like this : > > > >1.07 1.11 1.27 1.59 0.97 0.76 > >2.23 0.98 0.71 0.88 1.19 1.02 > > > > > >What I'm looking for is a way to round these numbers to the > nearest 0.25, > >i.e. the above matrix would be transformed to : > > > >1.00 1.00 1.25 1.50 1.00 0.75 > >2.25 1.00 0.75 1.00 1.25 1.00 > > > > > >Anyone have a clever way to do this?? > > > >Thanks in advance, > >Ken > > > >______________________________________________ > >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 > > > > > > ______________________________________________ > 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 > > >