out_type <- knitr::opts_knit$get("rmarkdown.pandoc.to") r = getOption("repos") r["CRAN"] = "https://cran.rstudio.com/" #r["CRAN"] = "https://cloud.r-project.org/" #r["CRAN"] = "https://ftp.iitm.ac.in/cran/" options(repos = r)
switch(out_type, html = {cat("<p>1. Professor of the Academic Department of Statistics and Informatics of the Faculty of Economics and Planning.National University Agraria La Molina-PERU.</p> <p>2. Department of Mathematics and Statistics, University of Agriculture Faisalabad, Pakistan.</p>")}, latex = cat(" 1. Professor of the Academic Department of Statistics and Informatics of the Faculty of Economics and Planning.National University Agraria La Molina-PERU. 2. Department of Mathematics and Statistics, University of Agriculture Faisalabad, Pakistan. " ) )
knitr::opts_chunk$set( echo = TRUE , comment = "" , fig.cap = "" ) library(agricolae)
\begin{center} \vspace{6pt} \hrule \end{center}
The package agricolae provides some complementary functions to the R program, specifically for the management of the histogram and function hist.
The histogram is constructed with the function graph.freq and is associated to other functions: polygon.freq, table.freq, stat.freq. See Figures: \@ref(fig:DescriptStats2), \@ref(fig:DescriptStats6) and \@ref(fig:DescriptStats7) for more details.
Example. Data generated in R . (students' weight).
weight<-c( 68, 53, 69.5, 55, 71, 63, 76.5, 65.5, 69, 75, 76, 57, 70.5, 71.5, 56, 81.5, 69, 59, 67.5, 61, 68, 59.5, 56.5, 73, 61, 72.5, 71.5, 59.5, 74.5, 63) print(summary(weight))
oldpar<-par(mfrow=c(1,2),mar=c(4,4,0,1),cex=0.6) h1<- graph.freq(weight,col=colors()[84],frequency=1,las=2, ylim=c(0,12),ylab="Frequency") x<-h1$breaks h2<- plot(h1, frequency =2, axes= FALSE,ylim=c(0,0.4),xlab="weight",ylab="Relative (%)") polygon.freq(h2, col=colors()[84], lwd=2, frequency =2) axis(1,x,cex=0.6,las=2) y<-seq(0,0.4,0.1) axis(2, y,y*100,cex=0.6,las=1) par(oldpar)
Statistics: mean, median, mode and standard deviation of the grouped data.
stat.freq(h1)
Frequency tables: Use table.freq, stat.freq and summary
The table.freq is equal to summary()
Limits class: Lower and Upper
Class point: Main
Frequency: Frequency
Percentage frequency: Percentage
Cumulative frequency: CF
Cumulative percentage frequency: CPF
print(summary(h1),row.names=FALSE)
You can extract information from a histogram such as class intervals intervals.freq, attract new intervals with the sturges.freq function or to join classes with join.freq function. It is also possible to reproduce the graph with the same creator graph.freq or function plot and overlay normal function with normal.freq be it a histogram in absolute scale, relative or density . The following examples illustrates these properties.
sturges.freq(weight) intervals.freq(h1) join.freq(h1,1:3) -> h3 print(summary(h3))
oldpar<-par(mfrow=c(1,2),mar=c(4,4,0,1),cex=0.8) plot(h3, frequency=2,col=colors()[84],ylim=c(0,0.6),axes=FALSE,xlab="weight",ylab="%") y<-seq(0,0.6,0.2) axis(2,y,y*100,las=2) axis(1,h3$breaks) normal.freq(h3,frequency=2,col=colors()[90]) ogive.freq(h3,col=colors()[84],xlab="weight") par(oldpar)
The hist and graph.freq have the same characteristics, only f2 allows build histogram from grouped data.
::: {.verbatim data-latex=""} 0-10 (3)
10-20 (8)
20-30 (15)
30-40 (18)
40-50 (6) :::
oldpar<-par(mfrow=c(1,2),mar=c(4,3,2,1),cex=0.6) h4<-hist(weight,xlab="Classes (h4)") table.freq(h4) # this is possible # hh<-graph.freq(h4,plot=FALSE) # summary(hh) # new class classes <- c(0, 10, 20, 30, 40, 50) freq <- c(3, 8, 15, 18, 6) h5 <- graph.freq(classes,counts=freq, xlab="Classes (h5)",main="Histogram grouped data") par(oldpar)
print(summary(h5),row.names=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.