Read ?quantile carefully, please (and any references therein that you may wish to consult).
You are estimating a continuous function by a discrete finite step function, and as the Help page (and further references) explains, there are many ways to do this. Bert On Thu, Jul 14, 2022 at 2:33 PM Uwe Brauer <o...@mat.ucm.es> wrote: > > > Hi > > I am very acquainted with R. I use it occasionally via the org-babel library > of GNU emacs. > > I wanted to check the first, second and third quartiles of the scientific > science index JCR > https://support.clarivate.com/ScientificandAcademicResearch/s/article/Journal-Citation-Reports-Quartile-rankings-and-other-metrics?language=en_U > S > Its criterion is > #+begin_src > | Quartil | range | | > | ---------+------------------+---------------------------------------| > | Q1 | 0.0 < Z \leq 0.25 | Highest ranked journals in a category | > | Q2 | 0.25 < Z \leq 0.5 | | > | Q3 | 0.5 < Z \leq 0.75 | | > | Q4 | 0.75 < Z | Lowest ranked journals in a category | > #+end_src > > Z=(X/Y) > > Where X is the journal rank in category and Y is the number of journals in > the category. > > Now I have a list of 267 journals. > > What turns me crazy is that the way R, matlab and the JCR calculate the > quartiles gives different results. > > Here is a table > #+begin_matlab :exports both :eval never-export :results output latex > #+RESULTS: > | quartil-limit (last member) | | floor_Rlang | jcr | jcr_check | > floor_check | > |-----------------------------+----+-------------+-----+-----------+-------------| > | 67.5 | Q1 | 67 | 66 | 0.2472 | > 0.2509 | > | 134 | Q2 | 134 | 133 | 0.4981 | > 0.5019 | > | 200.5 | Q3 | 200 | 200 | 0.7491 | > 0.7491 | > | 267 | | 267 | 267 | 1 | > 1 | > #+TBLFM: $5=$4/267::$6=$3/267 > #+end_matlab > > I calculated using R (I don't provide the vector from 1 to 267) > > #+begin_src R :colnames t :var t1=jcr22 > quantile(t1$Data,c(1/4,1/2,3/4,1)) > #+end_src > #+begin_src > #+RESULTS: > | x | > |-------| > | 67.5 | > | 134 | > | 200.5 | > | 267 | > #+end_src > > > So you see the problem with Q1 and Q2. > > On top of that matlab gives > > #+begin_src matlab :exports results :eval never-export :results output latex > format short > x=1:267; > q1 = quantile(x,1/4); > q2 = quantile(x,1/2); > q3 = quantile(x,3/4); > Q=[q1; q2; q3]; > sprintf('|%g| \n', Q) > #+end_src > > #+RESULTS: > #+begin_export latex > |67.25| > |134| > |200.75| > #+end_export > > Which is also slightly different from R. > > Can anybody enlighten me please? > Thanks and regards > > Uwe Brauer > > -- > I strongly condemn Putin's war of aggression against the Ukraine. > I support to deliver weapons to Ukraine's military. > I support the ban of Russia from SWIFT. > I support the EU membership of the Ukraine. > > ______________________________________________ > R-help@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@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.