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
<[email protected]<mailto:[email protected]>> 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
<[email protected]<mailto:[email protected]>>:
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 <[email protected]<mailto:[email protected]>>
Date: Sat, Feb 21, 2015 at 5:37 AM
Subject: Normal Distribution Table
To: R-sig-teaching
<[email protected]<mailto:[email protected]>>
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
[email protected]<mailto:[email protected]>
--
Steven M. Stoline
1123 Forest Avenue
Portland, ME 04112
[email protected]
[[alternative HTML version deleted]]
_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-teaching
[[alternative HTML version deleted]]
_______________________________________________
[email protected]<mailto:[email protected]> mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-teaching
[[alternative HTML version deleted]]
_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-teaching