[R] weighted cumulative distribution with ggplot2

Francesco cariboupad at gmx.fr
Mon Oct 8 21:41:52 CEST 2012


thank you very much David, I will have a look at your idea
Best,

On 8 October 2012 19:24, David Winsemius <dwinsemius at comcast.net> wrote:
>
> On Oct 8, 2012, at 10:12 AM, David Winsemius wrote:
>
>>
>> On Oct 8, 2012, at 9:18 AM, David Winsemius wrote:
>>
>>>
>>> On Oct 8, 2012, at 8:01 AM, Francesco wrote:
>>>
>>>> I think I have my answer... ggplot2 uses ecdf which does NOT allow
>>>> weightings...
>>>> so there is no warning or error, but still the resulting plot do not
>>>> take into account the command weight=weight
>>>
>>> It was completely unclear why you expected ggplot to use ' ewcdf' when you gave a command to use 'ecdf'.
>>
>> You might want to look at stat_function. It appears designed to provide a mechanism for running data through functions that do not have current support in ggplot2. I've never really grok-ked how one is supposed to pass arguments into ggplot constructs and find the help pages not so helpful in figuring this out, so this is a big fat untested guess.
>>
>
> Here's a further stab at implementing my guess:
>
> dat <- read.table(text="X     Weight Year
> 0      2         2001
> 0      1         2001
> 1      5         2001
> 2      1         2001
> 2      3         2001
> 2      2         2002", header=TRUE)
>
> # Notice that ewcdf returns a function rather than a vector:
>
>  with(dat, ewcdf(X, weights=Weight) )
> Empirical CDF
> Call: ewcdf(X, weights = Weight)
>  x[1:3] =      0,      1,      2
>
> temp<-qplot(X,weight=weight,data=dat,stat = "ecdf", geom =
>                         "step",colour=factor(year))
>
> temp + stat_function(fun = with(dat, ewcdf(X, weights=Weight) ),
>                       mapping=aes(x=X, weights=Weight), colour = "red",
>                       data=dat )
>
> I'm not sure that is what was intended. I think there may still be residual points for the forst qplot call but the data does seem to be getting through to the ewcdf function. Maybe you can fix it.
>
>
>> --
>> David.
>>
>>>
>>>
>>>>
>>>> Hope that helps someone, just in case ;-)
>>>>
>>>> On 8 October 2012 15:40, Francesco <cariboupad at gmx.fr> wrote:
>>>>> Dear all,
>>>>>
>>>>> I am trying to draw a weighted cumulative distribution (as defined
>>>>> here http://rss.acs.unt.edu/Rdoc/library/spatstat/html/ewcdf.html)
>>>>> with ggplot2
>>>>>
>>>>> however the syntax
>>>>>
>>>>> temp<-qplot(X,weight=weight,data=data,stat = "ecdf", geom =
>>>>> "step",colour=factor(year))
>>>>>
>>>>> seems not to produce exactly the right figure (the values seems higher
>>>>> at some points)... I am wrong in the weight definition?
>>>>>
>>>>> The data is like the following
>>>>>
>>>>> X     Weight Year
>>>>> 0      2         2001
>>>>> 0      1         2001
>>>>> 1      5         2001
>>>>> 2      1         2001
>>>>> 2      3         2001
>>>>> 2      2         2002
>>>>> 3.. etc
>>>>>
>>>>> Any ideas ?
>>>>> Many thanks in advance
>>>>
>>>> ______________________________________________
>>>> 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.
>>>
>>> David Winsemius, MD
>>> Alameda, CA, USA
>>>
>>> ______________________________________________
>>> 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.
>>
>> David Winsemius, MD
>> Alameda, CA, USA
>>
>
> David Winsemius, MD
> Alameda, CA, USA
>




More information about the R-help mailing list