galaaz 0.4.6 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +3575 -118
  3. data/Rakefile +21 -4
  4. data/bin/gknit +152 -6
  5. data/bin/gknit-draft +105 -0
  6. data/bin/gknit-draft.rb +28 -0
  7. data/bin/gknit_Rscript +127 -0
  8. data/bin/grun +27 -1
  9. data/bin/gstudio +47 -4
  10. data/bin/{gstudio.rb → gstudio_irb.rb} +0 -0
  11. data/bin/gstudio_pry.rb +7 -0
  12. data/blogs/galaaz_ggplot/galaaz_ggplot.Rmd +3 -12
  13. data/blogs/galaaz_ggplot/galaaz_ggplot.html +77 -222
  14. data/blogs/galaaz_ggplot/galaaz_ggplot.md +4 -31
  15. data/blogs/galaaz_ggplot/galaaz_ggplot.pdf +0 -0
  16. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-html/midwest_rb.png +0 -0
  17. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-html/scatter_plot_rb.png +0 -0
  18. data/blogs/galaaz_ggplot/midwest.Rmd +1 -9
  19. data/blogs/gknit/gknit.Rmd +232 -123
  20. data/blogs/{dev/dev.html → gknit/gknit.html} +1897 -33
  21. data/blogs/gknit/gknit.pdf +0 -0
  22. data/blogs/gknit/lst.rds +0 -0
  23. data/blogs/gknit/stats.bib +27 -0
  24. data/blogs/manual/lst.rds +0 -0
  25. data/blogs/manual/manual.Rmd +1893 -47
  26. data/blogs/manual/manual.html +3153 -347
  27. data/blogs/manual/manual.md +3575 -118
  28. data/blogs/manual/manual.pdf +0 -0
  29. data/blogs/manual/manual.tex +4026 -0
  30. data/blogs/manual/manual_files/figure-html/bubble-1.png +0 -0
  31. data/blogs/manual/manual_files/figure-html/diverging_bar.png +0 -0
  32. data/blogs/manual/manual_files/figure-latex/bubble-1.png +0 -0
  33. data/blogs/manual/manual_files/figure-latex/diverging_bar.pdf +0 -0
  34. data/blogs/{dev → manual}/model.rb +0 -0
  35. data/blogs/nse_dplyr/nse_dplyr.Rmd +849 -0
  36. data/blogs/nse_dplyr/nse_dplyr.html +878 -0
  37. data/blogs/nse_dplyr/nse_dplyr.md +1198 -0
  38. data/blogs/nse_dplyr/nse_dplyr.pdf +0 -0
  39. data/blogs/oh_my/oh_my.html +274 -386
  40. data/blogs/oh_my/oh_my.md +208 -205
  41. data/blogs/ruby_plot/ruby_plot.Rmd +64 -84
  42. data/blogs/ruby_plot/ruby_plot.html +235 -208
  43. data/blogs/ruby_plot/ruby_plot.md +239 -34
  44. data/blogs/ruby_plot/ruby_plot.pdf +0 -0
  45. data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.png +0 -0
  46. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.png +0 -0
  47. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.png +0 -0
  48. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.png +0 -0
  49. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.png +0 -0
  50. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_decorations.png +0 -0
  51. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.png +0 -0
  52. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.png +0 -0
  53. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.png +0 -0
  54. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.png +0 -0
  55. data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.png +0 -0
  56. data/examples/Bibliography/master.bib +50 -0
  57. data/examples/Bibliography/stats.bib +72 -0
  58. data/examples/islr/ch2.spec.rb +1 -1
  59. data/examples/islr/ch3_boston.rb +4 -4
  60. data/examples/islr/x_y_rnorm.jpg +0 -0
  61. data/examples/latex_templates/Test-acm_article/Makefile +16 -0
  62. data/examples/latex_templates/Test-acm_article/Test-acm_article.Rmd +65 -0
  63. data/examples/latex_templates/Test-acm_article/acm_proc_article-sp.cls +1670 -0
  64. data/examples/latex_templates/Test-acm_article/sensys-abstract.cls +703 -0
  65. data/examples/latex_templates/Test-acm_article/sigproc.bib +59 -0
  66. data/examples/latex_templates/Test-acs_article/Test-acs_article.Rmd +260 -0
  67. data/examples/latex_templates/Test-acs_article/Test-acs_article.pdf +0 -0
  68. data/examples/latex_templates/Test-acs_article/acs-Test-acs_article.bib +11 -0
  69. data/examples/latex_templates/Test-acs_article/acs-my_output.bib +11 -0
  70. data/examples/latex_templates/Test-acs_article/acstest.bib +17 -0
  71. data/examples/latex_templates/Test-aea_article/AEA.cls +1414 -0
  72. data/examples/latex_templates/Test-aea_article/BibFile.bib +0 -0
  73. data/examples/latex_templates/Test-aea_article/Test-aea_article.Rmd +108 -0
  74. data/examples/latex_templates/Test-aea_article/Test-aea_article.pdf +0 -0
  75. data/examples/latex_templates/Test-aea_article/aea.bst +1269 -0
  76. data/examples/latex_templates/Test-aea_article/multicol.sty +853 -0
  77. data/examples/latex_templates/Test-aea_article/references.bib +0 -0
  78. data/examples/latex_templates/Test-aea_article/setspace.sty +546 -0
  79. data/examples/latex_templates/Test-amq_article/Test-amq_article.Rmd +256 -0
  80. data/examples/latex_templates/Test-amq_article/Test-amq_article.pdf +0 -0
  81. data/examples/latex_templates/Test-amq_article/Test-amq_article.pdfsync +3397 -0
  82. data/examples/latex_templates/Test-amq_article/pics/Figure2.pdf +0 -0
  83. data/examples/latex_templates/Test-ams_article/Test-ams_article.Rmd +215 -0
  84. data/examples/latex_templates/Test-ams_article/amstest.bib +436 -0
  85. data/examples/latex_templates/Test-asa_article/Test-asa_article.Rmd +153 -0
  86. data/examples/latex_templates/Test-asa_article/Test-asa_article.pdf +0 -0
  87. data/examples/latex_templates/Test-asa_article/agsm.bst +1353 -0
  88. data/examples/latex_templates/Test-asa_article/bibliography.bib +233 -0
  89. data/examples/latex_templates/Test-ieee_article/IEEEtran.bst +2409 -0
  90. data/examples/latex_templates/Test-ieee_article/IEEEtran.cls +6346 -0
  91. data/examples/latex_templates/Test-ieee_article/Test-ieee_article.Rmd +175 -0
  92. data/examples/latex_templates/Test-ieee_article/Test-ieee_article.pdf +0 -0
  93. data/examples/latex_templates/Test-ieee_article/mybibfile.bib +20 -0
  94. data/examples/latex_templates/Test-rjournal_article/RJournal.sty +335 -0
  95. data/examples/latex_templates/Test-rjournal_article/RJreferences.bib +18 -0
  96. data/examples/latex_templates/Test-rjournal_article/RJwrapper.pdf +0 -0
  97. data/examples/latex_templates/Test-rjournal_article/Test-rjournal_article.Rmd +52 -0
  98. data/examples/latex_templates/Test-springer_article/Test-springer_article.Rmd +65 -0
  99. data/examples/latex_templates/Test-springer_article/Test-springer_article.pdf +0 -0
  100. data/examples/latex_templates/Test-springer_article/bibliography.bib +26 -0
  101. data/examples/latex_templates/Test-springer_article/spbasic.bst +1658 -0
  102. data/examples/latex_templates/Test-springer_article/spmpsci.bst +1512 -0
  103. data/examples/latex_templates/Test-springer_article/spphys.bst +1443 -0
  104. data/examples/latex_templates/Test-springer_article/svglov3.clo +113 -0
  105. data/examples/latex_templates/Test-springer_article/svjour3.cls +1431 -0
  106. data/examples/misc/moneyball.rb +1 -1
  107. data/examples/misc/subsetting.rb +37 -37
  108. data/examples/rmarkdown/svm-rmarkdown-anon-ms-example/svm-rmarkdown-anon-ms-example.Rmd +73 -0
  109. data/examples/rmarkdown/svm-rmarkdown-anon-ms-example/svm-rmarkdown-anon-ms-example.pdf +0 -0
  110. data/examples/rmarkdown/svm-rmarkdown-article-example/svm-rmarkdown-article-example.Rmd +382 -0
  111. data/examples/rmarkdown/svm-rmarkdown-article-example/svm-rmarkdown-article-example.pdf +0 -0
  112. data/examples/rmarkdown/svm-rmarkdown-beamer-example/svm-rmarkdown-beamer-example.Rmd +164 -0
  113. data/examples/rmarkdown/svm-rmarkdown-beamer-example/svm-rmarkdown-beamer-example.pdf +0 -0
  114. data/examples/rmarkdown/svm-rmarkdown-cv/svm-rmarkdown-cv.Rmd +92 -0
  115. data/examples/rmarkdown/svm-rmarkdown-cv/svm-rmarkdown-cv.pdf +0 -0
  116. data/examples/rmarkdown/svm-rmarkdown-syllabus-example/attend-grade-relationships.csv +482 -0
  117. data/examples/rmarkdown/svm-rmarkdown-syllabus-example/svm-rmarkdown-syllabus-example.Rmd +280 -0
  118. data/examples/rmarkdown/svm-rmarkdown-syllabus-example/svm-rmarkdown-syllabus-example.pdf +0 -0
  119. data/examples/rmarkdown/svm-xaringan-example/svm-xaringan-example.Rmd +386 -0
  120. data/lib/R_interface/r.rb +2 -2
  121. data/lib/R_interface/r_libs.R +6 -1
  122. data/lib/R_interface/r_methods.rb +12 -2
  123. data/lib/R_interface/rdata_frame.rb +8 -17
  124. data/lib/R_interface/rindexed_object.rb +1 -2
  125. data/lib/R_interface/rlist.rb +1 -0
  126. data/lib/R_interface/robject.rb +20 -23
  127. data/lib/R_interface/rpkg.rb +15 -6
  128. data/lib/R_interface/rsupport.rb +13 -19
  129. data/lib/R_interface/ruby_extensions.rb +14 -18
  130. data/lib/R_interface/rvector.rb +0 -12
  131. data/lib/gknit.rb +2 -0
  132. data/lib/gknit/draft.rb +105 -0
  133. data/lib/gknit/knitr_engine.rb +6 -37
  134. data/lib/util/exec_ruby.rb +22 -84
  135. data/lib/util/inline_file.rb +7 -3
  136. data/specs/figures/bg.jpeg +0 -0
  137. data/specs/figures/bg.png +0 -0
  138. data/specs/figures/bg.svg +2 -2
  139. data/specs/figures/dose_len.png +0 -0
  140. data/specs/figures/no_args.jpeg +0 -0
  141. data/specs/figures/no_args.png +0 -0
  142. data/specs/figures/no_args.svg +2 -2
  143. data/specs/figures/width_height.jpeg +0 -0
  144. data/specs/figures/width_height.png +0 -0
  145. data/specs/figures/width_height_units1.jpeg +0 -0
  146. data/specs/figures/width_height_units1.png +0 -0
  147. data/specs/figures/width_height_units2.jpeg +0 -0
  148. data/specs/figures/width_height_units2.png +0 -0
  149. data/specs/r_dataframe.spec.rb +184 -11
  150. data/specs/r_list.spec.rb +4 -4
  151. data/specs/r_list_apply.spec.rb +11 -10
  152. data/specs/ruby_expression.spec.rb +3 -11
  153. data/specs/tmp.rb +106 -34
  154. data/version.rb +1 -1
  155. metadata +96 -33
  156. data/bin/gknit_old_r +0 -236
  157. data/blogs/dev/dev.Rmd +0 -77
  158. data/blogs/dev/dev.md +0 -87
  159. data/blogs/dev/dev_files/figure-html/bubble-1.png +0 -0
  160. data/blogs/dev/dev_files/figure-html/diverging_bar. +0 -0
  161. data/blogs/dev/dev_files/figure-html/diverging_bar.png +0 -0
  162. data/blogs/dplyr/dplyr.rb +0 -63
  163. data/blogs/galaaz_ggplot/galaaz_ggplot.aux +0 -43
  164. data/blogs/galaaz_ggplot/galaaz_ggplot.log +0 -640
  165. data/blogs/galaaz_ggplot/galaaz_ggplot.out +0 -10
  166. data/blogs/galaaz_ggplot/galaaz_ggplot.tex +0 -481
  167. data/blogs/galaaz_ggplot/midwest.png +0 -0
  168. data/blogs/galaaz_ggplot/scatter_plot.png +0 -0
  169. data/blogs/ruby_plot/ruby_plot.Rmd_external_figs +0 -662
  170. data/blogs/ruby_plot/ruby_plot.tex +0 -1077
  171. data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.svg +0 -57
  172. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.svg +0 -106
  173. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.svg +0 -110
  174. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.svg +0 -174
  175. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.svg +0 -236
  176. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.svg +0 -296
  177. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.svg +0 -236
  178. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.svg +0 -218
  179. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.svg +0 -128
  180. data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.svg +0 -150
  181. data/examples/paper/paper.rb +0 -36
@@ -0,0 +1,280 @@
1
+ ---
2
+ output:
3
+ pdf_document:
4
+ keep_tex: true
5
+ fig_caption: yes
6
+ latex_engine: pdflatex
7
+ template: /home/rbotafogo/desenv/galaaz/sty/svm-r-markdown-templates/svm-latex-syllabus.tex
8
+ geometry: margin=1in
9
+
10
+ title: "POSC 0000: A Class with an R Markdown Syllabus"
11
+ author: Steven V. Miller
12
+ date: "Fall 2016"
13
+
14
+ email: "svmille@clemson.edu"
15
+ web: "svmiller.com/teaching"
16
+ officehours: "W 09:00-11:30 a.m."
17
+ office: "230A Brackett Hall"
18
+ classroom: "*online*"
19
+ classhours: "TR 02:00-03:45 p.m."
20
+
21
+ fontfamily: mathpazo
22
+ fontsize: 11pt
23
+ header-includes:
24
+ - \linespread{1.05}
25
+ ---
26
+
27
+ ```{ruby install, echo=FALSE}
28
+ R.install_and_loads 'RefManageR'
29
+ R.install_and_loads 'kfigr'
30
+ ```
31
+
32
+ ```{r setup, include=FALSE}
33
+ knitr::opts_chunk$set(cache=FALSE, dev='pdf')
34
+ mon <- as.Date("2016-08-15")
35
+ # fri <- as.Date("2016-01-08")
36
+
37
+ advdate <- function(obj, adv) {
38
+ tmon <- obj + 7*(adv-1)
39
+ tfri <- obj + 4 + 7*(adv-1)
40
+ tmon <- format(tmon, format="%m/%d")
41
+ tfri <- format(tfri, format="%m/%d")
42
+ zadv <- sprintf("%02d", adv)
43
+ tmp <- paste("Week ",zadv,sep='',", ", tmon," - ",tfri)
44
+ return(tmp)
45
+ }
46
+
47
+ library(RefManageR)
48
+ # library(knitcitations)
49
+ # library(rcrossref)
50
+ bib <- ReadBib("/home/rbotafogo/desenv/galaaz/examples/Bibliography/master.bib")
51
+ myopts <- BibOptions(bib.style = "authoryear", style="latex", first.inits=FALSE, max.names = 20)
52
+ ```
53
+
54
+ # Course Description
55
+
56
+ You'll learn stuff in this class, I hope. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
57
+ Maecenas scelerisque elit sapien, eu consequat dui blandit in. Vestibulum dignissim feugiat
58
+ mauris, at pretium turpis blandit nec. Aliquam porta scelerisque tortor, eget imperdiet quam
59
+ dapibus et. Sed ut sollicitudin orci, id elementum arcu. Sed arcu quam, vestibulum molestie
60
+ mattis sed, ultricies sed est. Phasellus eu nunc et urna volutpat pharetra. Donec interdum ante
61
+ vitae odio malesuada blandit. Fusce at condimentum libero, eu elementum arcu. Aenean posuere
62
+ id lorem in varius. Sed bibendum neque pretium dolor faucibus, in cursus ipsum suscipit.
63
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam erat volutpat. Phasellus
64
+ mollis egestas risus, non maximus nisl euismod sit amet. Vestibulum laoreet et urna vitae
65
+ rutrum. Donec quis dui elit.
66
+
67
+ # Course Objectives
68
+
69
+ 1. You'll learn this
70
+
71
+ 2. And also that
72
+
73
+ 3. Perhaps some of this too.
74
+
75
+ # Required Readings
76
+
77
+ ```{r, echo = FALSE, results="asis"}
78
+ # bib["vasquez2009twp", "wagner2007ws"]
79
+ ```
80
+
81
+
82
+ # Course Policy
83
+
84
+ I will detail the policy for this course below. Basically, don't cheat and try to learn
85
+ stuff. Don't be that guy.
86
+
87
+ ## Grading Policy
88
+
89
+ - **20%** of your grade will be determined by a midterm during normal class hours.
90
+
91
+ - **20%** of your grade will be determined by a term paper that documents your appreciation
92
+ of Foghat's "Slow Ride", the most important song ever written. "Slow Ride" is what Mozart
93
+ wishes *Don Giovanni* could have been.
94
+
95
+ - **10%** of your grade will be determined by your attendance and participation in class.
96
+ Generally, ask questions and answer them.
97
+
98
+ - **20%** of your grade will be determined by a 20-page term paper on when exactly
99
+ "The Love Boat" jumped the proverbial shark. You will address whether this shark-jumping
100
+ can be attributed to Ted McGinley, the introduction of Jill Whelan as "Vicki", or some
101
+ other cause.
102
+
103
+ - **30%** of your grade will be determined by a final exam.
104
+
105
+ ## Attendance Policy
106
+
107
+ ```{r, include=FALSE}
108
+ options(scipen=999)
109
+ Attend <- read.csv("attend-grade-relationships.csv")
110
+ M1 <- lm(rgrade ~ perattend, Attend)
111
+ M2 <- lm(rgrade ~ perattend, data=subset(Attend, perattend >= 75))
112
+ library(broom)
113
+
114
+ M1df <- tidy(M1)
115
+ M2df <- tidy(M2)
116
+ library(ggplot2)
117
+ library(kfigr)
118
+ ```
119
+
120
+ > *Showing up is 80 percent of life* -- Woody Allen, [via Marshall Brickman](http://quoteinvestigator.com/2013/06/10/showing-up/#note-6553-1)
121
+
122
+ Students should be weary of skipping class. I deduct *all* participation points for a class
123
+ after five unexcused absences and this can have important implications for a student's
124
+ overall grade in the class. There is already a strong positive correlation between the
125
+ percentage of classes a student has attended in the course and the student's final grade for
126
+ the semester (*r* = `r round(cor(Attend$perattend, Attend$rgrade, use="complete.obs"), 3)`) for
127
+ all `r nrow(Attend)` students I have taught since Fall 2014.
128
+
129
+ A simple linear regression of a student's final grade on percentage of classes attended for
130
+ the semester for all classes I have taught since Fall 2014 suggests an increase of one percent
131
+ in attendance for the semester leads to an estimated increase of `r round(M1$coefficients[2], 3)`
132
+ in the student's final grade. Whereas one missed classes constitutes about a five-percent
133
+ decrease in percentage attendance for the semester, one missed class means an estimated
134
+ decrease of `r round(M1$coefficients[2], 3)*5` in the overall grade. The effect of attendance
135
+ on the final grade for the class is precise (*t* = `r round(M1df$statistic[2], 3)`) and the
136
+ likelihood that there is no actual relationship between attendance and final grade for the
137
+ semester is almost zero. This simple linear model with just one predictor (attendance) provides
138
+ a good fit as well (R$^2$ = `r round(summary(M1)$r.squared, 3)`). See
139
+ `r figr("attendplot", TRUE, type="Figure")` in this document.
140
+
141
+ ```{r attendplot, dev = "png", echo = FALSE, results="asis", cache=FALSE, fig.cap="A Scatterplot of the Relationship between Class Attendance and Final Grade", fig.height=4, fig.pos="H"}
142
+ Graph <- ggplot(Attend, aes(x = perattend, y = rgrade))
143
+ Graph + geom_point() + labs(x="Percent Attendance in Class", y="Final Grade in Class (0-100)") +
144
+ geom_smooth(method=lm)
145
+ ```
146
+
147
+ A student might object that attendance is partly endogenous to a grade since past classes deducted
148
+ all participation points after five unexcused absences. This is true, but the findings
149
+ hold even when I subset the data to cases where attendance is greater than 75% (i.e.
150
+ roughly the threshold below which I deduct all participation points). Students who just meet
151
+ the threshold for full participation points nevertheless get an estimated decrease of
152
+ `r round(M2$coefficients[2], 3)*5` in their overall grade for each missed class. This effect
153
+ is also precise (*t* = `r round(M2df$statistic[2], 3)`). Put another way, we would have
154
+ observed this effect in my data if there were no *true* effect of attendance on grades
155
+ about `r round(summary(M2)$coefficients[2,4]*100000)` times in 100,000 "trials"
156
+ (i.e. *p* = `r round(summary(M2)$coefficients[2,4], 5)`), on average. That probability is
157
+ effectively zero. *Attend class*.
158
+
159
+ ## Late Arrival of the Professor Policy
160
+
161
+ My current university, from what I have been told, asks professors to have policies written
162
+ into their syllabus about what students should do if the professor is more than 15 minutes
163
+ late to class. This seems like an anachronism. I will inform students via e-mail in advance
164
+ of class if class is cancelled for the day. I will also contact our department secretary if
165
+ something happened on the way to work. Failing that, assume the worst happened to me. I ask
166
+ the students make sure that my story gets the proper treatment on an *Investigation
167
+ Discovery* show. I also ask that my story be narrated by Keith Morrison.
168
+
169
+ ## E-mail Policy
170
+
171
+ I am usually quick to respond to student e-mails. However, student e-mails tend to do several
172
+ things that try my patience. I have a new policy, effective Fall 2016, that outlines why I
173
+ will not respond to certain e-mails students send. Multiple rationales follow.
174
+
175
+ 1. The student could answer his/her own inquiry by reading the syllabus.
176
+ 2. The student missed class for which there was no exam. I do not need to know the exact
177
+ reason for a missed class. Students with excusable absences are responsible for giving me
178
+ a note *in hard copy* that documents the reason for the missed class. An e-mail is
179
+ unnecessary unless the impromptu absence involved missing a midterm or final.
180
+ 3. The student wants to know what topics s/he missed during a class s/he skipped. The answer
181
+ is always "you missed what was on the syllabus."
182
+ 4. The student is protesting a grade without reference to specific points of objection.
183
+ See the policy on protesting a grade in the syllabus. These e-mails tend to be expressive
184
+ utility on the part of the student and do not require a response from me. Students interested
185
+ in improving their knowledge of material should see me during office hours.
186
+ 5. The students wants to know how many classes s/he missed at some point during the semester.
187
+ I assume the student has a better answer to that question than me until the end of the semester.
188
+ 6. The student is requesting an extension on an assignment for which the syllabus already
189
+ established the deadline. The answer is always "no".
190
+ 7. The student is ["grade grubbing"](https://www.math.uh.edu/~tomforde/GradeGrubbing.html)
191
+ or asking to round up a grade. The answer is always "no".
192
+ 8. The student is asking for an extra credit opportunity, a request that amounts to more
193
+ grading for the professor. The answer is "no".
194
+
195
+
196
+ ## Make-Up Exam Policy
197
+
198
+ There are **NO** make-ups for missed exams. Don't bother asking.
199
+
200
+ ## Academic Dishonesty Policy
201
+
202
+ Don’t cheat. Don’t be that guy. Yes, you. You know exactly what I’m talking about too.
203
+
204
+ ## Disabilities Policy
205
+
206
+ Federal law mandates the provision of services at the university-level to qualified
207
+ students with disabilities. Make sure to include all that relevant information here.
208
+
209
+ \newpage
210
+
211
+ # Class Schedule
212
+
213
+ Students must read the following before Tuesday's class session. Important: class readings
214
+ are subject to change, contingent on mitigating circumstances and the progress we make as
215
+ a class. Students are encouraged to attend lectures and check the course website for updates.
216
+
217
+ ## `r advdate(mon, 1)`: Syllabus Day
218
+
219
+ *No class Thursday (Political scientists usually have a conference to start the semester).*
220
+
221
+ Read *all* associated documents on course website.
222
+
223
+ - [Taking Good Notes](http://svmiller.com/blog/2014/09/taking-good-notes/)
224
+ - [Dos and Dont's of Writing for Students](http://svmiller.com/blog/2015/06/dos-and-donts-of-writing-for-students/)
225
+ - [Assorted Tips for Students on Writing Research Papers](http://svmiller.com/blog/2015/12/assorted-tips-students-research-papers/)
226
+ - [Exam Grading Policy](https://www.dropbox.com/s/apihjs7di81aqcv/svm-exam-grading-policy.pdf?dl=0)
227
+ - [Fun with Attendance and Grades (i.e. Students Should Attend Class)](http://svmiller.com/blog/2016/05/fun-with-attendance-grades/)
228
+
229
+
230
+ ## `r advdate(mon, 2)`: The First Topic Where We Read John Vasquez
231
+
232
+ ```{r, echo = FALSE, results="asis"}
233
+ # bib[author = "vasquez"]
234
+ ```
235
+
236
+ ## `r advdate(mon, 3)`: Read the Nos. 90-97 Items in My Bib
237
+
238
+ ```{r, echo = FALSE, results="asis", eval=F}
239
+ bib[90:97]
240
+ ```
241
+
242
+ *Your "Slow Ride" appreciation paper is due in Thursday's class*.
243
+
244
+ ## `r advdate(mon, 4)`: Read Bib Item No. 120
245
+
246
+ ```{r, echo = FALSE, results="asis", eval=F}
247
+ bib[120]
248
+ ```
249
+
250
+
251
+
252
+ ## `r advdate(mon, 5)`: The Fourth Topic with Bib Item No. 510
253
+
254
+ ```{r, echo = FALSE, results="asis", eval=F}
255
+ bib[510]
256
+ ```
257
+
258
+ ## `r advdate(mon, 6)`: Keep
259
+ ## `r advdate(mon, 7)`: Going
260
+ ## `r advdate(mon, 8)`: Down
261
+
262
+ ## `r advdate(mon, 9)`: the
263
+
264
+ ## `r advdate(mon, 10)`: Line
265
+
266
+ ## `r advdate(mon, 11)`: Until
267
+
268
+ ## `r advdate(mon, 12)`: You
269
+
270
+ ## `r advdate(mon, 13)`: Are
271
+
272
+ ## `r advdate(mon, 14)`: Done
273
+
274
+ ## `r advdate(mon, 15)`: with
275
+
276
+
277
+ ## `r advdate(mon, 16)`: your
278
+
279
+
280
+ ## `r advdate(mon, 17)`: Syllabus
@@ -0,0 +1,386 @@
1
+ ---
2
+ title: "Steve's Xaringan Presentation"
3
+ subtitle: "POSC 0000 -- It Would Be Cool If This Were an Actual Class Presentation"
4
+ author: "Steven V. Miller<br /> <br /> <br /> Department of Political Science"
5
+ institute: Department of Political Science
6
+ output:
7
+ xaringan::moon_reader:
8
+ css: ["default", "~/desenv/galaaz/sty/svm-xaringan-style.css"]
9
+ lib_dir: libs
10
+ nature:
11
+ highlightStyle: github
12
+ highlightLines: true
13
+ countIncrementalSlides: false
14
+ ---
15
+
16
+ ```{r setup, include=FALSE}
17
+ options(htmltools.dir.version = FALSE)
18
+ knitr::opts_chunk$set(dev = 'svg')
19
+ options(device = function(file, width, height) {
20
+ svg(tempfile(), width = width, height = height)
21
+ })
22
+ library(tidyverse)
23
+ library(stevemisc)
24
+ ```
25
+
26
+
27
+
28
+ # Install Xaringan First
29
+
30
+ Install the **xaringan** package from [Github](https://github.com/yihui/xaringan):
31
+
32
+ ```{r eval=FALSE, tidy=FALSE}
33
+ devtools::install_github("yihui/xaringan")
34
+ ```
35
+
36
+
37
+ You are recommended to use the [RStudio IDE](https://www.rstudio.com/products/rstudio/), but you do not have to.
38
+
39
+ - Create a new R Markdown document from the menu `File -> New File -> R Markdown -> From Template -> Ninja Presentation`;<sup>1</sup>
40
+ - Click the `Knit` button to compile it.
41
+
42
+ ---
43
+
44
+ # remark.js Maximizes the Presentation Value
45
+
46
+ Press `h` or `?` to see controls you have in remark.js.
47
+
48
+ Hit `Esc` to exit that screen.
49
+
50
+
51
+
52
+ ---
53
+
54
+ class: center, middle
55
+
56
+ # You can do this to your slides if you want
57
+ ## Add `class: center, middle` to the start of your slide.
58
+ ### Perhaps you want the appearance of a secondary title slide, which is what this will do.
59
+
60
+ For example, check this out...
61
+
62
+ ---
63
+
64
+ class: center, middle
65
+
66
+ # Pop Music and Political Science
67
+ ## POSC 0000 -- It Would Be Cool If This Were an Actual Class Presentation
68
+ ### I am not funny and you will be forgiven for thinking of me as impossibly uncool.
69
+
70
+
71
+
72
+ ---
73
+
74
+ # Sheena Easton and Total Conflict
75
+
76
+ Sheena Easton describes the following scenario for her baby:
77
+
78
+ - Takes the morning train
79
+ - Works from nine 'til five
80
+ - Takes another train home again
81
+ - Finds Sheena Easton waiting for him
82
+
83
+ --
84
+
85
+ Sheena Easton and her baby are playing a **zero-sum (total conflict)** game.
86
+
87
+ - Akin to Holmes-Moriarty game (see: von Neumann and Morgenstern), or "matching pennies."
88
+ - Useful for modeling strategic counterterrorism dilemmas between a government and terrorist group.
89
+
90
+
91
+ ---
92
+
93
+ # A Total Conflict Between Sheena Easton and Her Baby
94
+
95
+ | | Sheena Easton Stays Home | Sheena Easton Goes to Baby's Work |
96
+ |-------------------------|---------------------|------------------|
97
+ | **Baby Home Again** | -100, **100** | **100**, 0 |
98
+ | **Baby Stays at Work** | **50**, 0 | -100, **100** |
99
+
100
+ --
101
+
102
+ <br />
103
+
104
+ Notice we have no pure strategies, and no Nash equilibrium.
105
+
106
+ - Sheena Easton wants to proverbially "match pennies."
107
+ - Her baby has diametrically opposed preferences, fearing for his safety.
108
+
109
+ Solution: mixed strategy.
110
+
111
+ ---
112
+ background-image: url(https://media.giphy.com/media/dqZSIfquVhSg0/giphy.gif)
113
+ background-position: 50% 50%
114
+ background-size: 100%
115
+ class: center, bottom, fullscale
116
+
117
+ # Run...
118
+
119
+ ---
120
+
121
+ # Congressman Astley's Re-election Platform
122
+
123
+ Assume Congressman Astley presides over a competitive district in which he seeks reappointment. He promises he's:
124
+
125
+ - Never gonna give you up.
126
+ - Never gonna let you down.
127
+ - Never gonna run around and desert you.
128
+ - Never gonna make you cry.
129
+ - Never gonna say goodbye.
130
+ - Never gonna tell a lie and hurt you.
131
+
132
+ Are these promises (if credible) sufficient to secure re-election?
133
+
134
+ ---
135
+
136
+ ```{r, eval = T, echo = F, fig.width=11, fig.height = 8, message=F, dev='svg', fig.cap = "SDFSFDSFS"}
137
+
138
+ df <- data.frame(x = rnorm(1000))
139
+ x <- df$x
140
+
141
+ ggplot(df, aes(x)) +
142
+ theme_steve_web() +
143
+ stat_function(fun = dnorm, colour = "black") +
144
+ scale_x_continuous(limits = c(-4, 4),
145
+ breaks = c(-4, 0, 4),
146
+ labels = c("Complete\nEmotional\nNeglect",
147
+ "Never Gonna Give You Up\nLet You Down\nRun Around and Desert You\n(Preference of Median Voter)",
148
+ "Maximum\nEmotional\nSupport")) +
149
+ geom_vline(xintercept = 0) +
150
+ geom_vline(xintercept = 1, linetype="dashed") +
151
+ geom_vline(xintercept = -2, linetype = "dashed") +
152
+ geom_vline(xintercept = -.5, linetype = "dotted") +
153
+ scale_y_continuous(limits = c(0, .5), breaks = NULL, label=NULL) +
154
+ xlab("A Unidimensional Continuum of the Policy Space of Emotional Support") +
155
+ ylab("") +
156
+ stat_function(fun = dnorm,
157
+ xlim = c(-4,-2),
158
+ size=0,
159
+ geom = "area", fill="#f8766d", alpha=1) +
160
+ stat_function(fun = dnorm,
161
+ xlim = c(1, 4),
162
+ size=0,
163
+ geom = "area", fill="#619cff", alpha=1) +
164
+ stat_function(fun = dnorm,
165
+ xlim = c(-.5, 1),
166
+ size=0,
167
+ geom = "area", fill="#619cff", alpha=.4) +
168
+ stat_function(fun = dnorm,
169
+ xlim = c(-2, -.5),
170
+ size=0,
171
+ geom = "area", fill="#f8766d", alpha=.4) +
172
+ annotate("text", label="Astley's rival is promising\nfar less in the (public?) good\nof emotional support",
173
+ size = 3.5, family="Open Sans",
174
+ x = -2.1, y = .4,
175
+ hjust = 1) +
176
+ annotate("text",
177
+ label="Congressman Astley is pledging\nmore emotional support\n(i.e. never gonna make you cry/say goodbye/tell a lie/hurt you)\nthan most his constituents want",
178
+ size = 3.5, family="Open Sans",
179
+ x = 1.1, y = .4,
180
+ hjust = 0) +
181
+ annotate("text",
182
+ label="Preferences\ncloser to\nAstley's\nrival",
183
+ size = 3.5, family="Open Sans",
184
+ x = -1.2, y = .45,
185
+ hjust = .5) +
186
+ annotate("text",
187
+ label="Preferences\ncloser to\nCongressman\nAstley",
188
+ size = 3.5, family="Open Sans",
189
+ x = .5, y = .45,
190
+ hjust = .5) +
191
+ labs(title = "Median Voter Theorem Suggests Congressman Astley Secures Re-election Against His Rival",
192
+ subtitle = "Assuming a unidimensional policy space and single-peaked preferences, Congressman Astley is closer to the median voter than his rival and wins the election.") +
193
+ geom_hline(yintercept = 0) +
194
+ geom_vline(xintercept = -4)
195
+
196
+
197
+
198
+
199
+ ```
200
+
201
+ ---
202
+ background-image: url(https://media.giphy.com/media/Vuw9m5wXviFIQ/giphy.gif)
203
+ background-position: 50% 50%
204
+ background-size: 100%
205
+ class: center, bottom, fullscale
206
+
207
+ # Re-election Dance
208
+
209
+
210
+
211
+ ---
212
+
213
+ # Caribbean Queen and Operation Urgent Fury
214
+
215
+ .pull-left[
216
+
217
+ Billy Ocean released "Caribbean Queen" in 1984.
218
+
219
+ - Emphasized sharing the same dream
220
+ - Hearts beating as one
221
+
222
+ "Caribbean Queen" is about the poor execution of Operation Urgent Fury.
223
+
224
+ - Coordination problems plagued its execution from the start.
225
+ - Echoed JCS chairman David Jones' frustrations with military establishment.
226
+ ]
227
+
228
+ .pull-right[
229
+
230
+ ![](http://wearethemighty.wpengine.netdna-cdn.com/wp-content/uploads/2016/05/GrenadaNewsCartoon.jpg)
231
+
232
+ *This seriously happened, btw..*
233
+ ]
234
+
235
+ Billy Ocean is advocating for what became the Goldwater-Nichols Act.
236
+
237
+ - Wanted to take advantage of **economies of scale**, resolve **coordination problems** in U.S. military.
238
+
239
+ ---
240
+
241
+ background-image: url(https://i.makeagif.com/media/9-05-2015/auHafh.gif)
242
+ background-position: 50% 50%
243
+ background-size: 100%
244
+ class: center, bottom, fullscale
245
+
246
+ # The military establishment was the tiger we wanted to tame all along.
247
+
248
+
249
+ ---
250
+
251
+ # The Good Day Hypothesis
252
+
253
+ We know the following about Ice Cube's day.
254
+
255
+ 1. The Lakers beat the Supersonics.
256
+ 2. No helicopter looked for a murder.
257
+ 3. Consumed Fatburger at 2 a.m.
258
+ 4. Goodyear blimp: "Ice Cube's a pimp."
259
+
260
+ --
261
+
262
+ This leads to two different hypotheses:
263
+
264
+ - $H_0$: Ice Cube's day is statistically indistinguishable from a typical day.
265
+ - $H_1$: Ice Cube is having a good day.
266
+
267
+ These hypotheses are tested using archival data from Ice Cube's life to estimate an item response model of the "goodness" of Ice Cube's days.
268
+
269
+ ---
270
+
271
+ ```{r, eval = T, echo = F, fig.width=11, fig.height = 8, message=F, dev='svg', fig.cap = "SDFSFDSFS"}
272
+ interval1 <- -qnorm((1-0.9)/2) # 90% multiplier
273
+ interval2 <- -qnorm((1-0.95)/2) # 95% multiplier
274
+
275
+ tribble(
276
+ ~variable, ~est, ~se,
277
+ "Latent Estimate of\nIce Cube's Day", 1.6, .231
278
+ ) %>%
279
+ ggplot(.) + theme_steve_web() +
280
+ geom_hline(yintercept = .5, color = "red", lty=2) +
281
+ geom_linerange(aes(x = variable, ymin = est - se*interval1,
282
+ ymax = est + se*interval1),
283
+ lwd = 1, position = position_dodge(width = 1/2)) +
284
+ geom_pointrange(aes(x = variable, y = est, ymin = est - se*interval2,
285
+ ymax = est + se*interval2),
286
+ lwd = 1/2, position = position_dodge(width = 1/2),
287
+ fill = "WHITE") +
288
+ coord_flip() + xlab("") + ylab("Latent Estimate") +
289
+ labs(title = "Latent Estimates from Ice Cube's Archives Lend Support to the 'Good Day' Hypothesis",
290
+ subtitle = "Latent estimates are drawn from an item response model of indicators of the quality of Ice Cube's days. These include whether he had to use his A.K.",
291
+ caption = "Data: Ice Cube's Archives, obviously fictional. Red value of .5 indicate likelihood of 'good day.'")
292
+
293
+
294
+
295
+ ```
296
+
297
+ ---
298
+
299
+ background-image: url(https://media.giphy.com/media/cgh25bl5dgK3u/giphy.gif)
300
+ background-position: 50% 50%
301
+ background-size: 100%
302
+ class: center, bottom, fullscale
303
+
304
+ ---
305
+
306
+ class: center, middle
307
+
308
+ # You Can Do Other Stuff in Xaringan Too
309
+ ## POSC 0000 -- It Would Be Cool If This Were an Actual Class Presentation
310
+ ### I might use it mostly for the ability to put GIFs in class presentations, but it's flexible enough to do almost anything.
311
+
312
+ ---
313
+
314
+ Show some R code and execute it if you'd like.
315
+
316
+ ```{r}
317
+ pi
318
+
319
+ 3+5
320
+
321
+ rnorm(10)
322
+
323
+ ```
324
+
325
+
326
+ ---
327
+
328
+ Here's a simple ultimatum game, a la Fearon (1995). Done via `DiagrammeR`.
329
+
330
+ ```{r, echo=F, eval=T}
331
+ library(DiagrammeR)
332
+ grViz("
333
+ digraph {
334
+ # Multiple level nodes
335
+ node [shape = square, color=CornflowerBlue]
336
+ A [label = 'A'];
337
+ 0 [label = '0', shape = none];
338
+ B [label = 'B'];
339
+ 1 [label = '1', shape = none];
340
+ Accept [label = '1 - x, x', shape = none];
341
+ N;
342
+ Awins [shape = none, label = '1 - k, k'];
343
+ Bwins [shape = none, label = '-k, 1 - k']
344
+
345
+
346
+
347
+ # Connect nodes with edges and labels
348
+ A -> 0 [arrowhead= none]
349
+ A -> B
350
+ A -> 1 [arrowhead = none]
351
+ B -> Accept [headlabel = 'Accept', labeldistance = 5, labelangle=75]
352
+ B -> N [label = ' Reject']
353
+ N -> Awins [headlabel = 'A wins (1 - p)', labeldistance=4.5 ,
354
+ labelangle=75]
355
+ N -> Bwins [label = 'B wins (p)']
356
+ }
357
+
358
+ [1]: 'A'
359
+ [2]: '0'
360
+ [3]: paste0('Model 3\\n Split 3')
361
+ [4]: paste0('Model 6\\n Split 4')
362
+ ")
363
+
364
+ ```
365
+
366
+ ---
367
+
368
+ # Conclusion
369
+
370
+ Xaringan is a nifty Rstudio add-on/package for creating HTML presentations.
371
+
372
+ - I think I'm still more inclined toward Beamer but Xaringan has tons of flexibility.
373
+ - Have an interactive component to your presentation (e.g. `leaflet` or a Shiny app)? You probably want Xaringan.
374
+
375
+ Plus, you can put GIFs into your presentation with Xaringan. That's nifty. Maybe students will like that.
376
+
377
+
378
+
379
+ ---
380
+
381
+ background-image: url(https://i.imgur.com/IHeUeZ9.gif)
382
+ background-position: 50% 50%
383
+ background-size: 100%
384
+ class: center, bottom, fullscale
385
+
386
+ Questions? Hate mail? Stay out of my mentions @stevenvmiller