[R] Conditional operations in R
R. Michael Weylandt
michael.weylandt at gmail.com
Tue Sep 18 18:07:38 CEST 2012
On Tue, Sep 18, 2012 at 3:41 PM, ramoss <ramine.mossadegh at finra.org> wrote:
> Hello,
>
> I am a newbie to R coming from SAS background. I am trying to program the
> following:
> I have a monthly data frame with 2 variables:
>
> client pct_total
> A 15%
> B 10%
> C 10%
> D 9%
> E 8%
> F 6%
> G 4%
>
> I need to come up w/ a monthly list of clients that make 50% or just above
> it every month so I can pass them to the rest of the program. In this case
> the list would contain the first 4 rows.
> top <- client[c(1,4),]
> toptot <- sum(top$PCTTOT)
> How can I make this automatic? In SAS I would use macro w/ a do while.
> Thanks for your help.
>
If I understand the algorithm correctly, you take a cumulative sum of
the pct_total column and want the index of the first place that passes
50%:
try
with(DATA, which.max(cumsum(pct_total) > 0.5))
which is admittedly rather opaque.
Also in: top <- client[c(1,4),]
That's not rows 1 to 4 but rows one and 4: you need instead: seq(1,4)
to make c(1,2,3,4).
Cheers,
Michael
> --
> View this message in context: http://r.789695.n4.nabble.com/Conditional-operations-in-R-tp4643497.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
More information about the R-help
mailing list