On Oct 16, 2011, at 11:31 AM, gj wrote:

Hi,
Newbie here. I read the R for Beginners but i still don't get this.

I have the following data (this is just an example) in a CSV file:

   courseid numstudents
       101         209
       141          13
       246         140
       263           8
       321          10
       361          10
       364          28
       365          25
       366          23
       367          34

I load my data using:

fs<-read.csv(file="C:\\num_students_inallmodules.csv",header=T, sep=',')

I want to get the ecdf. So, I looked at the ?ecdf which says usage:ecdf(x)

So I expected ecdf(fs$numstudents) to work

Instead it just returned:
Call: ecdf(fs$numstudents)
x[1:210] =      1,      2,      3,  ...,   3717,   4538

After Googling, got this to work:
ecdf(fs$numstudents)(unique(fs$numstudents))

But I don't understand why if the ?ecdf says usage is ecdf(x) ... I
need to use ecdf(fs$numstudents)(unique(fs$numstudents)) to get this
to work?

Can somebody explain this to me?

ecdf() returns a function rather than a vector. You need to supply arguments to that function to get something that you recognize.

Had you passed that function off to plot you would have seen that the information needed to calculate the plot is obviously "in there". If you go to the stepfun page you find that the knots function can recover some of htat information for display.

> plot( ecdf(fs$numstudents) )
> knots( ecdf(fs$numstudents) )
[1]   8  10  13  23  25  28  34 140 209

If you count the knots you can deduce the quantile values (the "y- values") at which those "x-values" will start the step "dot-line"
--

David Winsemius, MD
West Hartford, CT

______________________________________________
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