[R] struggling with apply
Bert Gunter
bgunter@4567 @end|ng |rom gm@||@com
Wed May 27 21:56:47 CEST 2020
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 <jdnewmil using 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.4567 using 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 <ruipbarradas using 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 using 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 using 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 using 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]]
More information about the R-help
mailing list