This is like "Name that Tune." Can anyone do it in FEWER characters? :-)
On May 27, 2020, at 4:32 PM, Mathew Guilfoyle <mrguilfo...@gmail.com> wrote: A bit quicker: t(pmin(t(somematrix), UB)) On 27 May 2020, at 20:56, Bert Gunter <bgunter.4...@gmail.com<mailto:bgunter.4...@gmail.com>> wrote: Jeff: Check it! somematrix <- matrix(c(1,4,3,6,3,9,12,8,5,7,11,11),nrow=3,ncol=4) UB=c(2.5, 5.5, 8.5, 10.5) apply( somematrix, 2, function( x ) pmin( x, UB ) ) [,1] [,2] [,3] [,4] [1,] 1 2.5 2.5 2.5 [2,] 4 3.0 5.5 5.5 [3,] 3 8.5 5.0 8.5 [4,] 1 6.0 10.5 7.0 Not what was wanted. Am I missing something? 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 12:38 PM Jeff Newmiller <jdnew...@dcn.davis.ca.us<mailto:jdnew...@dcn.davis.ca.us>> wrote: 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<mailto: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<mailto: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<mailto: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<mailto: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. [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org<mailto: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<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.