Sigh. Transpose? apply( somematrix, 2, function( x ) pmin( x, UB ) )
On May 27, 2020 11:22:06 AM PDT, Bert Gunter <bgunter.4...@gmail.com> wrote: >Better, I think (no indexing): > >t(apply(somematrix,1,function(x)pmin(x,UB))) > > >Bert Gunter > >"The trouble with having an open mind is that people keep coming along >and >sticking things into it." >-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > >On Wed, May 27, 2020 at 10:56 AM Rui Barradas <ruipbarra...@sapo.pt> >wrote: > >> Hello, >> >> Try pmin. And loop by column/UB index with sapply/seq_along. >> >> >> sapply(seq_along(UB), function(i) pmin(UB[i], somematrix[,i])) >> # [,1] [,2] [,3] [,4] >> #[1,] 1.0 5.5 8.5 7.0 >> #[2,] 2.5 3.0 8.0 10.5 >> #[3,] 2.5 5.5 5.0 10.5 >> >> >> Hope this helps, >> >> Rui Barradas >> >> >> Às 18:46 de 27/05/20, Michael Ashton escreveu: >> > Hi - >> > >> > I have a matrix of n rows and 4 columns. >> > >> > I want to cap the value in each column by a different upper bound. >So, >> suppose my matrix is >> > >> > somematrix <- matrix(c(1,4,3,6,3,9,12,8,5,7,11,11),nrow=3,ncol=4) >> >> somematrix >> > [,1] [,2] [,3] [,4] >> > [1,] 1 6 12 7 >> > [2,] 4 3 8 11 >> > [3,] 3 9 5 11 >> > >> > Now I want to have the maximum value in each column described by >> > UB=c(2.5, 5.5, 8.5, 10.5) >> > >> > So that the right answer will look like: >> > [,1] [,2] [,3] [,4] >> > [1,] 1 5.5 8.5 7 >> > [2,] 2.5 3 8 10.5 >> > [3,] 2.5 5.5 5 10.5 >> > >> > I've tried a few things, like: >> > newmatrix <- apply(somematrix,c(1,2),function(x) min(UB,x)) >> > >> > but I can't figure out to apply the relevant element of the UB list >to >> the right element of the matrix. When I run the above, for example, >it >> takes min(UB,x) over all UB, so I get: >> > >> > newmatrix >> > [,1] [,2] [,3] [,4] >> > [1,] 1.0 2.5 2.5 2.5 >> > [2,] 2.5 2.5 2.5 2.5 >> > [3,] 2.5 2.5 2.5 2.5 >> > >> > I'm sure there's a simple and elegant solution but I don't know >what it >> is! >> > >> > Thanks in advance, >> > >> > Mike >> > >> > Michael Ashton, CFA >> > Managing Principal >> > >> > Enduring Investments LLC >> > W: 973.457.4602 >> > C: 551.655.8006 >> > Schedule a Call: https://calendly.com/m-ashton >> > >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> > 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. >> > >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> > > [[alternative HTML version deleted]] > >______________________________________________ >R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >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. -- Sent from my phone. Please excuse my brevity. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.