Hello, I have some rather large matrices. Is there a way (without having to loop) to cap all the values of a data frame to a given ceiling? E.g. junk <- cbind(c(1,2,3,4,5),c(2,4,6,8,10))> junk[,1] [,2] [1,] 1 2 [2,] 2 4 [3,] 3 6 [4,] 4 8 [5,] 5 10>" replace anything over the value of 5 with 5..."Thank you all, Grey
Assuming the data frame is all numeric: DF[] <- pmax(10, unlist(DF)) On Fri, Nov 7, 2008 at 4:16 PM, Grey Moran <grey.moran at gmail.com> wrote:> Hello, > > I have some rather large matrices. Is there a way (without having to > loop) to cap all the values of a data frame to a given ceiling? > E.g. > junk <- cbind(c(1,2,3,4,5),c(2,4,6,8,10)) >> junk > [,1] [,2] > [1,] 1 2 > [2,] 2 4 > [3,] 3 6 > [4,] 4 8 > [5,] 5 10 > >>" replace anything over the value of 5 with 5..." > > Thank you all, > > Grey > > ______________________________________________ > R-help at r-project.org 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. >
Are they objects of class "matrix" or "data.frame"? You seem to make reference to both, but know there is a difference. Try: junk[junk > 5] <- 5 Grey Moran wrote:> Hello, > > I have some rather large matrices. Is there a way (without having to > loop) to cap all the values of a data frame to a given ceiling? > E.g. > junk <- cbind(c(1,2,3,4,5),c(2,4,6,8,10)) >> junk > [,1] [,2] > [1,] 1 2 > [2,] 2 4 > [3,] 3 6 > [4,] 4 8 > [5,] 5 10 > >> " replace anything over the value of 5 with 5..." > > Thank you all, > > Grey > > ______________________________________________ > R-help at r-project.org 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.
That should be pmin: On Fri, Nov 7, 2008 at 4:25 PM, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:> Assuming the data frame is all numeric: > > DF[] <- pmax(10, unlist(DF)) > > > On Fri, Nov 7, 2008 at 4:16 PM, Grey Moran <grey.moran at gmail.com> wrote: >> Hello, >> >> I have some rather large matrices. Is there a way (without having to >> loop) to cap all the values of a data frame to a given ceiling? >> E.g. >> junk <- cbind(c(1,2,3,4,5),c(2,4,6,8,10)) >>> junk >> [,1] [,2] >> [1,] 1 2 >> [2,] 2 4 >> [3,] 3 6 >> [4,] 4 8 >> [5,] 5 10 >> >>>" replace anything over the value of 5 with 5..." >> >> Thank you all, >> >> Grey >> >> ______________________________________________ >> R-help at r-project.org 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. >> >
Thanks to all who replied - lots of good ideas. The one I prefered at the end was: junk[junk > 5] <- 5 Grey On Fri, Nov 7, 2008 at 4:38 PM, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:> That should be pmin: > > On Fri, Nov 7, 2008 at 4:25 PM, Gabor Grothendieck > <ggrothendieck at gmail.com> wrote: >> Assuming the data frame is all numeric: >> >> DF[] <- pmax(10, unlist(DF)) >> >> >> On Fri, Nov 7, 2008 at 4:16 PM, Grey Moran <grey.moran at gmail.com> wrote: >>> Hello, >>> >>> I have some rather large matrices. Is there a way (without having to >>> loop) to cap all the values of a data frame to a given ceiling? >>> E.g. >>> junk <- cbind(c(1,2,3,4,5),c(2,4,6,8,10)) >>>> junk >>> [,1] [,2] >>> [1,] 1 2 >>> [2,] 2 4 >>> [3,] 3 6 >>> [4,] 4 8 >>> [5,] 5 10 >>> >>>>" replace anything over the value of 5 with 5..." >>> >>> Thank you all, >>> >>> Grey >>> >>> ______________________________________________ >>> R-help at r-project.org 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. >>> >> >
On Fri, Nov 7, 2008 at 4:46 PM, Grey Moran <grey.moran at gmail.com> wrote:> Thanks to all who replied - lots of good ideas. > The one I prefered at the end was: > junk[junk > 5] <- 5 > > Grey > > On Fri, Nov 7, 2008 at 4:38 PM, Gabor Grothendieck > <ggrothendieck at gmail.com> wrote: >> That should be pmin: >> >> On Fri, Nov 7, 2008 at 4:25 PM, Gabor Grothendieck >> <ggrothendieck at gmail.com> wrote: >>> Assuming the data frame is all numeric: >>> >>> DF[] <- pmax(10, unlist(DF)) >>> >>> >>> On Fri, Nov 7, 2008 at 4:16 PM, Grey Moran <grey.moran at gmail.com> wrote: >>>> Hello, >>>> >>>> I have some rather large matrices. Is there a way (without having to >>>> loop) to cap all the values of a data frame to a given ceiling? >>>> E.g. >>>> junk <- cbind(c(1,2,3,4,5),c(2,4,6,8,10)) >>>>> junk >>>> [,1] [,2] >>>> [1,] 1 2 >>>> [2,] 2 4 >>>> [3,] 3 6 >>>> [4,] 4 8 >>>> [5,] 5 10 >>>> >>>>>" replace anything over the value of 5 with 5..." >>>> >>>> Thank you all, >>>> >>>> Grey >>>> >>>> ______________________________________________ >>>> R-help at r-project.org 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. >>>> >>> >> >