# Articles by R on jmarriott.com

December 20, 2020 |

I have been inspired by this informative XKCD comic on password security, and I often follow its advice by using random-word-generating websites. But I have to wonder what dictionaries these sites use and how random the words are that they spit out. So I thought that it would be fun ... [Read more...]

### VLOOKUP in R with Schwartau Beehive Data

July 1, 2019 |

I started learning R back in 2016 in college thanks to a couple of my professors who used it to teach statistics: Dr. Grimshaw and Dr. Lawson. Thanks to the R community I’ve learned a lot more since then, but recently I did an embarrassing Google search for “how to ... ### Individuals Control Charts

May 27, 2019 |

This post is a follow-up two my two recent posts on generating control charts in R, and animating them. One thing that I’ve been wondering about is how to calculate a range chart without using a package like ggQC or qcc. I knew that I could do it using ... ### How to Animate a Control Chart

April 4, 2019 |

Recently, I wrote a post about creating control charts in R, and now I want to experiment with animating one of those charts. Lets start with the tidyverse, gganimate, and ggQC.
library(tidyverse)
library(gganimate)
library(ggQC)
Now, lets rebuild the last control chart from my previous post.
# Generate sample data
set.seed(20190117)
example_df <- data_frame(values = rnorm(n=30*5, mean = 25, sd = .005),
subgroup = rep(1:30, 5),
n = rep(1:5, each = 30)) %>%
add_row(values = rnorm(n=2*5, mean = 25 + .006, sd = .005),
subgroup = rep(31:32, 5),
n = rep(1:5, each = 2))

violations <- example_df %>%
QC_Violations(value = "values", grouping = "subgroup", method = "xBar.rBar") %>%
filter(Violation == TRUE) %>%
select(data, Index) %>%
unique()

ggQC_example <- example_df %>%
ggplot(aes(x = subgroup, y = values)) +
stat_summary(fun.y = mean, geom = "line", aes(group = 1)) +
stat_summary(fun.y = mean, geom = "point", aes(group = 1)) +
stat_QC(method = "xBar.rBar", auto.label = TRUE, label.digits = 4) +
scale_x_continuous(expand =  expand_scale(mult = c(.05, .15))) + # Pad the x-axis for the labels
ylab("x-bar") +
theme_bw() +
geom_point(data = violations, aes(x = Index, y = data), color = "red", group = 1)
ggQC_example
You can see that I added ... ### Creating a Favicon with R

February 28, 2019 |

I use the Hugo Coder theme for this website, but I don’t like the default favicon, so I decided to make a new one using ggplot2. For those of you who don’t know, a favicon is the little icon that shows up on your browser tab next to ... ### Testing out ggQC

February 10, 2019 |

R is a great language for statistical process control largely because there are several packages which make it quite easy, including qcc, SixSigma, and a new one that I want to explore in this post called ggQC. I’ve been using qcc for a while and I trust its calculations, ...  