Forum Discussion
R Control Chart
RE : xBarChart
In true life scenario, I'd say the following data would probably be obtained as a result
of fancy mathemathic algorithm formula... though I'll leave that to Math PhDs...:smileyhappy:
So for for simplicity I just added a list of subgroup manually...
So here we go...
#declare qcc library: library(qcc) # Load a mock list of 10 subgroup data manually: sg1 <- c(1.397742,1.399917,1.278918,1.279828) # Fill in subgroup 1 data! sg2 <- c(1.283877,1.307215,1.341566,1.396107) # Fill in subgroup 2 data! sg3 <- c(1.313634,1.278839,1.242498,1.331201) # Fill in subgroup 3 data! sg4 <- c(1.245943,1.303432,1.390168,1.298949) # Fill in subgroup 4 data! sg5 <- c(1.188624,1.226905,1.217450,1.284127) # Fill in subgroup 5 data! sg6 <- c(1.287875,1.283185,1.234186,1.314055) # Fill in subgroup 6 data! sg7 <- c(1.276711,1.284376,1.305309,1.249184) # Fill in subgroup 7 data! sg8 <- c(1.312219,1.297509,1.272367,1.371223) # Fill in subgroup 8 data! sg9 <- c(1.378350,1.312981,1.381944,1.268875) # Fill in subgroup 9 data! sg10 <- c(1.332196,1.268824,1.299608,1.329053) # Fill in subgroup 10 data! # Include those subgroups into a my.data mock list through rbind my.data <- rbind(sg1,sg2,sg3,sg4,sg5,sg6,sg7,sg8,sg9,sg10) # Draw the R Chart and calculate relevant metrics q1 <- qcc(my.data, type="R", nsigmas=3)
which should generate similar R chart:
then add following to ldraw the X-BAR chart...
# Draw the X-Bar Chart and calculate relevant metrics q2 <- qcc(my.data, type="xbar", nsigmas=3)
which should generate following X-Bar Chart:
Finally:
# Establish the LSL and USL as set by customer specs, then # draw the process capability chart and calculate metrics: lsl <- 1.31 # Fill in a mock LSL here! usl <- 1.32 # Fill in a mock USL here! process.capability(q2, spec.limits=c(lsl,usl))
which should end up with following:
Hope this helps...
Thank you for all of this information! I am going to try and take some time this weekend to put into play your examples.
Much appreciated! Ill reply back with any progress I can make.
Cheers.
- tglah9 years agoFrequent Visitor
I have been able to create the R and XBar charts in PowerBI R Visuals, but still need some adjustments as it doesnt look right to me (data not displaying as expected).
library(qcc)
months<- c("Jan", "Feb", "Mar", "Apr","May", "Jun","Jul","Aug","Sep","Oct","Nov","Dec")
qcc(dataset, type="R", nsigmas=1, labels=months, xlab= "Month", ylab = "Service Level %", title = "Phone Call SVL", digits=3)
Any idea how to get the Y axis to show as percentages? My data is in percentages as you can see when selecting a simple Line Chart from the PowerBI Visuals.
Thanks for all your assistance!
- MawashiKid9 years agoResolver II
Sorry for late response. For the sake of simplicity, I mainly used mock data which I entered
manually. The idea was basically to create a series of 4 weeks subsets over a 12 months period sort if thing...
We both agree that a real life scenario would have gone through a much fancier scenario such as querying data
from a server and even adding conversion at some stage. I used numeric for simplicity.Also I noticed that even if qcc library offers a wide variety of statisitic chart [R, xBar,...], it doesn't seem to have
any qcc - y axis formatting options parameter as you would probably find using scaling_y_continuous in ggplot2 library.
So in this case I don't believe y axis percentage formatting could be done in one shot.My best bet would be to define the qcc : q1 R Chart and q2 xBar in respectice class with a plot=False attribute
library(qcc) Jan <- c(0.837742,0.839917,0.728918,0.729828) # Fill in subgroup January data! Feb <- c(0.783877,0.807215,0.841566,0.836107) # Fill in subgroup February data! Mar <- c(0.813634,0.728839,0.742498,0.831201) # Fill in subgroup March data! Apr <- c(0.745943,0.803432,0.830168,0.798949) # Fill in subgroup April data! May <- c(0.688624,0.726905,0.717450,0.784127) # Fill in subgroup May data! Jun <- c(0.787875,0.783185,0.714186,0.814055) # Fill in subgroup June data! Jul <- c(0.726711,0.784376,0.805309,0.749184) # Fill in subgroup July data! Aug <- c(0.812219,0.797509,0.722367,0.871223) # Fill in subgroup August data! Sep <- c(0.878350,0.812981,0.881944,0.768875) # Fill in subgroup September data! Oct <- c(0.832196,0.768824,0.799608,0.729053) # Fill in subgroup October data! Nov <- c(0.813634,0.728839,0.742498,0.831201) # Fill in subgroup November data! Dec <- c(0.726711,0.784376,0.805309,0.749184) # Fill in subgroup December data! # Include those subgroups into a my.data mock list through rbind dataset <- rbind(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec) months<- c("Jan", "Feb", "Mar", "Apr","May", "Jun","Jul","Aug","Sep","Oct","Nov","Dec")
# assign q1 q1 <- qcc(dataset, type="R", nsigmas=1, labels=months, xlab= "Month", ylab = "Service Level %", title = "Phone Call SVL", digits=3, label.limits = c("5%", "14%"),plot=FALSE) # assign q2
q2 <- qcc(dataset, type="xbar", nsigmas=1, labels=months, xlab= "Month", ylab = "Service Level %", title = "Phone Call SVL", digits=3, label.limits = c("76%", "80%"), plot=FALSE)and then use each q1 & q2 with a plot method allowing to erase the y axis and redifine a new one with somekind of thicks.
plot(q1, yaxt="n", ... , xlab="Months", ylab="Service Levels %", title="Phone Call SVL", label.limits= c("5%", "13%"))plot(q2, yaxt="n", ..., xlab="Months", ylab="Service Levels %", title="Phone Call SVL", label.limits= c("76%", "80%"))Tom Hopper has written a blog on rewriting qcc plot using ggplot2 and grid,
https://tomhopper.me/2014/03/03/rewriting-plot-qcc-using-ggplot2-and-grid/though I haven't got a chance to dive deep into it. I wish I could bring you an easiy solution on y axis percentage formatting
though I haven't found one with qcc. Sorry.- makika8 years agoFrequent Visitor
edited: learned how to refer to individual column in dataset and how to define x-axis labels. still, the sample order is wrong..
edited2: got it solved myself. details below to other learners like me.
Hello,
I've been trying to create xbar.one (individual) chart with power bi / qcc, with no luck so far. It seems values inside dataset somehow automatically get rearranged to ascending order. If I provide the values in script manually, chart looks fine. But if they come from Excel or SQL table (power bi's automatically formed dataset), values get rearranged.
I'd also like to bind the values to labels on x-axis, but haven't found the way how.I'm new to R.
Samples:
360.1
360.2
360.0
359.8
Any help is greatly appreciated.
Solved:
newdata <- dataset[order(dataset$SERIALID),]
library(qcc)
x <- c(newdata$SERIALID)
s <- c(newdata$NUM_VALUE)
qcc(s, type="xbar.one", labels=x)
- kari