David W and all,

Thank you very much for your help.

Here is the final output that I want in the form of data frame. The data
frame should contain  x, group and group_ mean in the following way

x       group   group mean
46       1        42.3
125     2        89.6
36       1        42.3
193     3        235.25
209     3        235.25
78       2        89.6
66       2        89.6
242     3        235.25
297     3        235.25
45       1        42.3

Thanks a lot








On Tue, Apr 3, 2012 at 9:51 AM, David Winsemius <dwinsem...@comcast.net>wrote:

>
> On Apr 3, 2012, at 9:32 AM, R. Michael Weylandt wrote:
>
>  Use cut2 as I suggested and David demonstrated.
>>
>
> Agree that Hmisc::cut2 is extremely handy and I also like that fact that
> the closed ends of intervals are on the left side (which is not the same
> behavior as cut()), which has the otehr effect of setting include.lowest =
> TRUE which is not the default for cut() either (to my continued amazement).
>
> But let me add the method I use when doing it "by hand":
>
> cut(x, quantile(x, prob=seq(0, 1, length=ngrps+1)), include.lowest=TRUE)
>
> --
> David.
>
>
>
>
>> Michael
>>
>> On Tue, Apr 3, 2012 at 9:31 AM, Val <valkr...@gmail.com> wrote:
>>
>>> Thank you all (David, Michael, Giovanni)  for your prompt response.
>>>
>>> First there was a typo error for the group mean it was 89.6 not 87.
>>>
>>> For a small data set and few groupings I can use  prob=c(0, .333, .66
>>> ,1) to
>>> group in to three groups in this case. However,  if I want to extend the
>>> number of groupings say 10 or 15 then do I have to figure it out the
>>>  split(x, cut(x, quantile(x, prob=c(0, .333, .66 ,1))
>>>
>>> Is there a short cut for that?
>>>
>>>
>>> Thanks
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Apr 3, 2012 at 9:13 AM, R. Michael Weylandt
>>> <michael.weyla...@gmail.com> wrote:
>>>
>>>>
>>>> Ignoring the fact your desired answers are wrong, I'd split the
>>>> separating part and the group means parts into three steps:
>>>>
>>>> i) quantile() can help you get the split points,
>>>> ii)  findInterval() can assign each y to a group
>>>> iii) then ave() or tapply() will do group-wise means
>>>>
>>>> Something like:
>>>>
>>>> y <- c(36, 45, 46, 66, 78, 125, 193, 209, 242, 297) # You need a "c"
>>>> here.
>>>> ave(y, findInterval(y, quantile(y, c(0.33, 0.66))))
>>>> tapply(y, findInterval(y, quantile(y, c(0.33, 0.66))), mean)
>>>>
>>>> You could also use cut2 from the Hmisc package to combine findInterval
>>>> and quantile into a single step.
>>>>
>>>> Depending on your desired output.
>>>>
>>>> Hope that helps,
>>>> Michael
>>>>
>>>> On Tue, Apr 3, 2012 at 8:47 AM, Val <valkr...@gmail.com> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Assume that I have the following 10 data points.
>>>>>  x=c(  46, 125 , 36 ,193, 209, 78, 66, 242 , 297 , 45)
>>>>>
>>>>> sort x  and get the following
>>>>>  y= (36 , 45 , 46,  66, 78,  125,193, 209, 242, 297)
>>>>>
>>>>> I want to  group the sorted  data point (y)  into  equal number of
>>>>> observation per group. In this case there will be three groups.  The
>>>>> first
>>>>> two groups  will have three observation  and the third will have four
>>>>> observations
>>>>>
>>>>> group 1  = 34, 45, 46
>>>>> group 2  = 66, 78, 125
>>>>> group 3  = 193, 209, 242,297
>>>>>
>>>>> Finally I want to calculate the group mean
>>>>>
>>>>> group 1  =  42
>>>>> group 2  =  87
>>>>> group 3  =  234
>>>>>
>>>>> Can anyone help me out?
>>>>>
>>>>> In SAS I used to do it using proc rank.
>>>>>
>>>>> thanks in advance
>>>>>
>>>>> Val
>>>>>
>>>>>       [[alternative HTML version deleted]]
>>>>>
>>>>
>>>>
>>>>> ______________________________**________________
>>>>> R-help@r-project.org mailing list
>>>>> https://stat.ethz.ch/mailman/**listinfo/r-help<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.
>>>>>
>>>>
>>>
>>>
>> ______________________________**________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/**listinfo/r-help<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.
>>
>
> David Winsemius, MD
> West Hartford, CT
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to