[R-sig-teaching] Normal Distribution Table

Randall Pruim rpruim at calvin.edu
Tue Feb 24 00:05:36 CET 2015


The file got a bit garbled in the email, so I’ve submitted it to RPubs:  http://rpubs.com/rpruim/normal-prob-table

I thought that would give access to the source as well, but it doesn’t seem to, so I’ve posted the RMarkdown, HTML, and PDF here:

http://www.calvin.edu/~rpruim/R/misc/ProbabilityTable/

As a side effect of wanting to put the doc on Rpubs, I created a version that can switch hit between HTML and PDF.  RPubs shows the HTML version, but if you grab the Rmd file and knitPDF it, you will get a PDF version.  (If you are curious to see how to have the document detect which format is being produced, look at the markdown and search for “target".)

—rjp

PS.  I haven’t used tables like this in a quite awhile.  I generally have my students using RStudio during exams if they need access to this sort of calculation.  Else I simply write an exam about different things.  But there are standardized exams for which various sorts of tables are provided, and you should be able to tweak my example to create tables in the desired format.  (The Fundamentals of Engineering Exam, for example, provides lower tail, upper tail, central and 2-tailed probabilities in the table they provide, IIRC.)


On Feb 23, 2015, at 7:15 PM, Randall Pruim <rpruim at calvin.edu<mailto:rpruim at calvin.edu>> wrote:

I�m not a fan of probability tables.  I don�t use trig or log tables when for calculus, why should I use normal probability tables when I teach statistics.

But I am a fan of good R coding and of knitr, and since Arthur wished for an RMarkdown version of his table and I think there are ways to improve the R used to generate the table (note the use of outer(), the avoidance of all loops, and letting the computer calculate sequences), I�ll offer the following RMarkdown file.  It is more complicated than necessary to show how to include a plot and how to control the table format a bit.  A minimalist version with just the table and no custom formatting would be shorter.

Anyway, here goes:


```{r include=FALSE} # execute this code, but don�t put anything into the output
require(xtable)
require(grid)        # for the plot
require(mosaic)      # for the plot
trellis.par.set(theme=theme.mosaic())   # change default colors for plot
big <- seq(0, 3.5, by = 0.1)
little <- seq(0, 0.09, by = 0.01)
norm_table <- outer(big, little, function(x,y) pnorm(x+y))
row.names(norm_table) <- format(big, digits=1)
colnames(norm_table)  <- format(little, digits=2)
```

The table gives values for $P(Z \le z)$ where $z$ is the sum of the left and right headers.

```{r echo=FALSE, fig.width = 7.0, fig.height = 2, fig.keep="last"}
plotDist("norm", groups = x >= 1, type="h")
ladd(grid.text(label=expression(P(Z <= z)), x = .2, y = .7))
```


```{r results="asis", echo=FALSE}
print(
 xtable(
   norm_table,
   digits=4,                          # display 4 digits
   align="|r|rrrrrrrrrr|"             # additional vertical lines
 ),
 hline.after = c(-1, seq(0, nrow(norm_table), by=4)),  # additional horizontal lines
 comment=FALSE)                       # avoid latex comment about table generation
```

On Feb 22, 2015, at 12:02 AM, Arthur Charpentier <arthur.charpentier at gmail.com<mailto:arthur.charpentier at gmail.com><mailto:arthur.charpentier at gmail.com>> wrote:

Hi Steven
it might be out of scope but a few months ago, I published some codes to
generate such a table
see http://freakonometrics.hypotheses.org/9404
Arthur



2015-02-21 11:49 GMT+01:00 Steven Stoline <sstoline at gmail.com<mailto:sstoline at gmail.com><mailto:sstoline at gmail.com>>:

One more thing;

3- how to force all output to be in a 4 decimal format. e.g. 1 should look
like 1.0000.

thanks
steve
---------- Forwarded message ----------
From: Steven Stoline <sstoline at gmail.com<mailto:sstoline at gmail.com><mailto:sstoline at gmail.com>>
Date: Sat, Feb 21, 2015 at 5:37 AM
Subject: Normal Distribution Table
To: R-sig-teaching <R-sig-teaching at r-project.org<mailto:R-sig-teaching at r-project.org><mailto:R-sig-teaching at r-project.org>>


Dear All:

I am trying to use the below R code to create the standard normal
distribution table. But I need some helps on the output:

1- how I can insert one line-space between each two rows.

2- there is  one "<NA>" in the output, how to remove it from the output.

Simply copy-paste the below code into R.


Here is the Code:
============


columnz<-c(0.00, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09)



rowz<-c(0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,


2.0,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3.0,3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9,4.0)


normal.table<-function(columnz,rowz){


m<-length(rowz)

n<-length(columnz)


A<-matrix(NA, nrow = m+1 , ncol = n+1)


for (i in (1:m+1)) {

  A[i,1]<-"   "

}


for (j in (1:n+1)) {

  A[1,j]<-"------"

}


for (i in (1:m)) {
for (j in (1:n)){

####    A[i,j]<-round(pnorm(rowz[i]+columnz[j]),4)

 A[i+1,j+1]<-round(pnorm(rowz[i]+columnz[j]),4)


}

}



dimnames(A)<-list(c("  ",
"0.0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9",

"1.0","1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9",

"2.0","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9",

"3.0","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","4.0"),
                  c("  ", " 0.00", " 0.01", " 0.02", " 0.03", " 0.04", "
0.05", " 0.06", " 0.07", " 0.08", " 0.09"))

print(A,quote=F)

invisible()

}

normal.table(columnz,rowz)


with many thanks
Steve

--
Steven M. Stoline
1123 Forest Avenue
Portland, ME 04112
sstoline at gmail.com<mailto:sstoline at gmail.com><mailto:sstoline at gmail.com>



--
Steven M. Stoline
1123 Forest Avenue
Portland, ME 04112
sstoline at gmail.com<mailto:sstoline at gmail.com>

      [[alternative HTML version deleted]]

_______________________________________________
R-sig-teaching at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-teaching


[[alternative HTML version deleted]]

_______________________________________________
R-sig-teaching at r-project.org<mailto:R-sig-teaching at r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-teaching


[[alternative HTML version deleted]]

_______________________________________________
R-sig-teaching at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-teaching


	[[alternative HTML version deleted]]



More information about the R-sig-teaching mailing list