From 24c8375c3f2ea236010f08c8716dcd86bef6f5cf Mon Sep 17 00:00:00 2001 From: Brian Caffo Date: Mon, 16 Feb 2015 13:42:36 -0500 Subject: [PATCH] Trying to fix repo errors and inconsistencies --- .../assets/fig/unnamed-chunk-1.png | Bin 0 -> 6338 bytes .../assets/fig/unnamed-chunk-3.png | Bin 0 -> 2701 bytes .../assets/fig/unnamed-chunk-4.png | Bin 0 -> 2868 bytes .../assets/fig/unnamed-chunk-1.png | Bin 0 -> 4806 bytes .../assets/fig/unnamed-chunk-2.png | Bin 0 -> 4765 bytes .../assets/fig/unnamed-chunk-4.png | Bin 0 -> 3232 bytes .../assets/fig/unnamed-chunk-5.png | Bin 0 -> 2987 bytes 09_DevelopingDataProducts/rCharts/index.html | 603 ------------------ 09_DevelopingDataProducts/rCharts/test.html | 184 ++++++ dependencyGraph.R | 0 10 files changed, 184 insertions(+), 603 deletions(-) create mode 100644 06_StatisticalInference/02_01_CommonDistributions/assets/fig/unnamed-chunk-1.png create mode 100644 06_StatisticalInference/02_01_CommonDistributions/assets/fig/unnamed-chunk-3.png create mode 100644 06_StatisticalInference/02_01_CommonDistributions/assets/fig/unnamed-chunk-4.png create mode 100644 07_RegressionModels/03_04_bonus/assets/fig/unnamed-chunk-1.png create mode 100644 07_RegressionModels/03_04_bonus/assets/fig/unnamed-chunk-2.png create mode 100644 07_RegressionModels/03_04_bonus/assets/fig/unnamed-chunk-4.png create mode 100644 07_RegressionModels/03_04_bonus/assets/fig/unnamed-chunk-5.png create mode 100644 09_DevelopingDataProducts/rCharts/test.html create mode 100644 dependencyGraph.R diff --git a/06_StatisticalInference/02_01_CommonDistributions/assets/fig/unnamed-chunk-1.png b/06_StatisticalInference/02_01_CommonDistributions/assets/fig/unnamed-chunk-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc91dee2dae922e8dd412279fde1418185765ac GIT binary patch literal 6338 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 literal 0 HcmV?d00001 diff --git a/06_StatisticalInference/02_01_CommonDistributions/assets/fig/unnamed-chunk-4.png b/06_StatisticalInference/02_01_CommonDistributions/assets/fig/unnamed-chunk-4.png new file mode 100644 index 0000000000000000000000000000000000000000..09b7a5d293edf8c1f574972f4cb231b220db9980 GIT binary patch literal 2868 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 literal 0 HcmV?d00001 diff --git a/07_RegressionModels/03_04_bonus/assets/fig/unnamed-chunk-1.png b/07_RegressionModels/03_04_bonus/assets/fig/unnamed-chunk-1.png new file mode 100644 index 0000000000000000000000000000000000000000..fab11c48af437d120b2a6687c6f1cb29094863a7 GIT binary patch literal 4806 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 kx9&KMs#WUSv1cu zG?ZcVn7I{22V+h%X^uU4r|dKt%$_-W+|F68bzAFp&$@ryz1H{b-{bo|zTe~fzI0Fb zU5nIo)BpfjS@llEftch=L@#}QE=CUaG3p7+?Mte6+4ghMGoE_|ZDAz^`79|UxsHb^www;vJa-BOUE5- zHp~EJ{x9ah?sg5{nDN1*(>7Njz18O(>TjV zw=KiMNR=;Pq%0Z}wPWM8Fu2z~W{*Xb)G}Rd!#;T=+)nL2@a~B?#4gRe)R-1f>61DD zv`+Y)3fIKoepD|kPd}9&l`U`&T?JB%%tbeLHDI}+5h3RwKirIBU)z6Sk&vjIJymnT zvY~YqRQxQ0OPnCt%gbE3X|ZP8hL%NTj|ox1<=jmu+FT~<{#o|1Kd<-KcAbSyDfZwS zETJCn2Jzl6^XQd`EVB9f!LBLY_sI3V7B&U;4f#I$wC8lC*YkVnl>*ose|;t#(r}Eg zuQ=Q%O;gux=iOaq%)k+dt&dFC+9c&kii|S|uJ;G8rleBBFFL}BV~M?)vNFRQC_-AO zNR{Oq7D2-~8x#5h)&{R6?W1~zFT&vFz%Q@ZHms&=rOJ-E=>;$0GVG|e>oJvcA)cO1 z;8MC^794^pET7LEK0`61w{^{iq_*gOLL+9v33|Z`p_;8{C_6DYr?nia;k(>MfoY~u z`3#6Rk1G(EzA|BAbYGsu!{wv=osi^;=>|nKzgi#_ZFy;1 z!<{*Ftw;NkYS)u-igSW{_6^Ig%b1%AxVfs84v=5JR)wo?z$`A~d=$TQv&x7mYW z^{@=)z@h0Uop zTWlqM-%MC%qLQrgMMD$=)hV|lxG7lOEq`g-dA5byuS?siCk@>8V=KK>&Z#16oS|D^ zdeC)R$4MY`fSF=eycLb;;2M!4QLT1E7r$lu#cl?A6l=#kwVx39!?Zq8-i8xI$ zgW{;~|7OF{{>Zcj(LKcSmeeG1rjW#)kZ#uN5G>pn%T-p!OCpt#(Zu5k>%;ZXefy$i zzjK0IcW{oo&(c1wAkWTU95pF`d#24kEsYsjExLbx5)nPPPqpT{6qOj$2CBN@%w}eh zl`4q-@)uOLWY*hOM+bjw8{GqgYJ6mwNlU&MM|Jo!jA)6ZYiAIp?}pX{>-;F&kHM`E zrn2MWPX@0N+*`4Ncp`O z-D`*f6|U4rGt z6tJtk%++zms*?C`y60Qef3*oi$WTjK-<$N7DXbpa(_ZqPE(6W++$=g88p_hOkxp23 zl9#oREYIYS%NK)<|8(qgjsq zBHmQTRhKt$%mde$o$?xr^33Grk>s>Z!vz&p@t*=XgbzI;ErLiM&Wy>p;f^0^TRnxh z?jJ?Q2fX=X*W4F`iYw}m7uKI5_Cb<|P0Aq6f|SrUtHh)>CbheD?(EOUEuyvE_@j2V zc7pBo>IWADS6ZY)f5#Ht`pZ|pL9gi=;f=X?di_%|F@C;k@H{NILMCoTJ>zL?>(4%VDr|2gh)8BT>G3-X5MUa#4D?cBm-jAIYLg zdVBzZe4FGmN+~P6O?%dPv+Ot6lR!f9pXPc!kX)xVPi9g|rH9uCrX13U;1^4C z9v?fprW-Tx0 ze3Ozu>*G#ijN-cs**x$4N^f0w(M_!meU4qIc5R!7FG?Xkwxk}&T4x+|qe5Z@X%6Kr zk&-1Q0$6I5-MlXe`6p{ikx*7>Q$kCx=XH=*`mNj8@*-i$u=pWO-n}*_r(T-_^hZp2@CR6+jKc#RKm3eDYCuFhp2!f~kbe%L|Mq!2#yR!p!0j0*HkjT#uq zVIDh0?ALFTX9V<$DwE}-4;%a7&5E(XJ4HxfQc|-&(iR8D4!`cSlfy1aCj*mg#)4w1 z&jgN_EQZ>4$$M7Oq~k9uA$2h`V3Lz9u7q12D`{7epHSA>my&%*P>l0sU1EWF2b0JC iw|CbUY5xj1K`1&gXU)jPv*oH6x3i - - - rCharts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

rCharts

-

Building Data Products

-

Brian Caffo, Jeff Leek, Roger Peng
Johns Hopkins Bloomberg School of Public Health

-
-
-
- - - - -
-

rCharts

-
-
-

rCharts

- -
    -
  • rCharts is a way to create interactive javascript visualizations using R
  • -
  • So - -
      -
    • You don't have to learn complex tools, like D3
    • -
    • You simply work in R learning a minimal amount of new syntaxt
    • -
  • -
  • rCharts was written by Ramnath Vaidyanathan (friend of the Data Science Series), who also wrote slidify, the framework we use for all of the lectures in the class
  • -
  • This lecture is basically going through -(http://ramnathv.github.io/rCharts/)
  • -
- -
- -
- - -
-

Example

-
-
-
require(rCharts)
-haireye = as.data.frame(HairEyeColor)
-n1 <- nPlot(Freq ~ Hair, group = 'Eye', type = 'multiBarChart',
-  data = subset(haireye, Sex == 'Male')
-)
-n1$save('fig/n1.html', cdn = TRUE)
-cat('<iframe src="fig/n1.html" width=100%, height=600></iframe>')
-
- -
- -
- - -
-

nvD3 run

-
-
- - -
- -
- - -
-

Slidify interactive

-
-
-
    -
  • The above was an example of embedding an rChart in a slidify document - -
      -
    • In the YAML -yaml ext_widgets : {rCharts: ["libraries/nvd3"]}
    • -
  • -
  • Or, if you use more than one library
  • -
  • YAML example -yaml ext_widgets : {rCharts: ["libraries/highcharts", "libraries/nvd3", "libraries/morris"]}
  • -
- -
- -
- - -
-

Viewing the plot

-
-
-
    -
  • The object n1 contains the plot - -
      -
    • In RStudio, typing n1 brings up the plot in the RStudio viewer (or you can just not assign it to an object)
    • -
  • -
  • Do n1$ then hit TAB to see the various functions contained in the object - -
      -
    • n1$html() prints out the html for the plot
    • -
  • -
  • I do n1$save(filename) then bring the code back into slidify document - -
      -
    • This is recommended for slidify, but if you're just looking at the plot, -it's unnecessary
    • -
  • -
- -
- -
- - -
-

Deconstructing another example

-
-
-
## Example 1 Facetted Scatterplot
-names(iris) = gsub("\\.", "", names(iris))
-r1 <- rPlot(SepalLength ~ SepalWidth | Species, data = iris, color = 'Species', type = 'point')
-r1$save('fig/r1.html', cdn = TRUE)
-cat('<iframe src="fig/r1.html" width=100%, height=600></iframe>')
-
- -
- -
- - -
-

When run

-
-
- - -
- -
- - -
-

Example 2 Facetted Barplot

-
-
-
hair_eye = as.data.frame(HairEyeColor)
-r2 <- rPlot(Freq ~ Hair | Eye, color = 'Eye', data = hair_eye, type = 'bar')
-r2$save('fig/r2.html', cdn = TRUE)
-cat('<iframe src="fig/r2.html" width=100%, height=600></iframe>')
-
- -
- -
- - -
-

Example 2 Facetted Barplot, when run

-
-
- - -
- -
- - -
-

How to get the js/html or publish an rChart

-
-
-

Now you can add whatever you'd like

- -
r1 <- rPlot(mpg ~ wt | am + vs, data = mtcars, type = "point", color = "gear")
-r1$print("chart1") # print out the js 
-r1$save('myPlot.html') #save as html file
-r1$publish('myPlot', host = 'gist') # save to gist, rjson required
-r1$publish('myPlot', host = 'rpubs') # save to rpubs
-
- -
- -
- - -
-

rCharts has links to several libraries

-
-
-
    -
  • We'll do some examples
  • -
  • Note Ramnath mentions that io2012 and polychart have conflicting js - -
      -
    • They seem to work for me with that theme, but I get errors if I load the polychart library
    • -
    • If debugging with io and polychart, factor that in
    • -
  • -
- -
- -
- - -
-

morris

-
-
-
data(economics, package = "ggplot2")
-econ <- transform(economics, date = as.character(date))
-m1 <- mPlot(x = "date", y = c("psavert", "uempmed"), type = "Line", data = econ)
-m1$set(pointSize = 0, lineWidth = 1)
-m1$save('fig/m1.html', cdn = TRUE)
-cat('<iframe src="fig/m1.html" width=100%, height=600></iframe>')
-
- -
- -
- - -
-

morris example run

-
-
- - -
- -
- - -
-

xCharts

-
-
-
require(reshape2)
-uspexp <- melt(USPersonalExpenditure)
-names(uspexp)[1:2] = c("category", "year")
-x1 <- xPlot(value ~ year, group = "category", data = uspexp, type = "line-dotted")
-x1$save('fig/x1.html', cdn = TRUE)
-cat('<iframe src="fig/x1.html" width=100%, height=600></iframe>')
-
- -
- -
- - -
-

xCharts run

-
-
- - -
- -
- - -
-

Leaflet

-
-
-
map3 <- Leaflet$new()
-map3$setView(c(51.505, -0.09), zoom = 13)
-map3$marker(c(51.5, -0.09), bindPopup = "<p> Hi. I am a popup </p>")
-map3$marker(c(51.495, -0.083), bindPopup = "<p> Hi. I am another popup </p>")
-map3$save('fig/map3.html', cdn = TRUE)
-cat('<iframe src="fig/map3.html" width=100%, height=600></iframe>')
-
- -
- -
- - -
-

Leaflet run

-
-
- - -
- -
- - -
-

Rickshaw

-
-
-
usp = reshape2::melt(USPersonalExpenditure)
-# get the decades into a date Rickshaw likes
-usp$Var2 <- as.numeric(as.POSIXct(paste0(usp$Var2, "-01-01")))
-p4 <- Rickshaw$new()
-p4$layer(value ~ Var2, group = "Var1", data = usp, type = "area", width = 560)
-# add a helpful slider this easily; other features TRUE as a default
-p4$set(slider = TRUE)
-p4$save('fig/p4.html', cdn = TRUE)
-cat('<iframe src="fig/p4.html" width=100%, height=600></iframe>')
-
- -
- -
- - -
-

Rickshaw run

-
-
- - -
- -
- - -
-

highchart

-
-
-
h1 <- hPlot(x = "Wr.Hnd", y = "NW.Hnd", data = MASS::survey, type = c("line", 
-    "bubble", "scatter"), group = "Clap", size = "Age")
-h1$save('fig/h1.html', cdn = TRUE)
-cat('<iframe src="fig/h1.html" width=100%, height=600></iframe>')
-
- -
- -
- - -
-

highchart run

-
-
- - -
- -
- - -
-

rCharts summarized

-
-
-
    -
  • rCharts makes creating interactive javascript visualizations in R ridiculously easy
  • -
  • However, non-trivial customization is going to require knowledge of javascript
  • -
  • If what you want is not too big of a deviation from the rCharts examples, then it's awesome - -
      -
    • Otherwise, it's challenging to extend without fairly deep knowledge of the JS -libraries that it's calling.
    • -
  • -
  • rCharts is under fairly rapid development
  • -
- -
- -
- - -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/09_DevelopingDataProducts/rCharts/test.html b/09_DevelopingDataProducts/rCharts/test.html new file mode 100644 index 000000000..297010f19 --- /dev/null +++ b/09_DevelopingDataProducts/rCharts/test.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + +
+ + + + + diff --git a/dependencyGraph.R b/dependencyGraph.R new file mode 100644 index 000000000..e69de29bb