\documentclass{beamer} \usepackage{graphicx} \usepackage{multicol} \usepackage{hyperref} \usepackage{lipsum} % for placeholder text \graphicspath{{pdf_images/}} \title{ECON 4530/5530 \\ Computational Economics} \subtitle{Data transformation} \author{Alex Gebben} \begin{document} % Title Slide \begin{frame} \titlepage \end{frame} %%%%%%%%%%%%%%%%%% \begin{frame}{Commenting Code} \only<1-3>{ \onslide<1-3>{Comments are lines of code which do not run. These are \textbf{\emph{very}} important. } \newline \onslide<2-3>{ In R these are created by starting a line with ``\#''} \onslide<3>{ \begin{enumerate} \item{You should add a comment to any line of code which is not highly simple.} \item{Keep a clean comment style} \item{Comment above a section of code. Indent the following code} \item{Always include the why of your code. The what and how of your code is less critical} \item{Think about what you would need to know if you forgot everything about the project} \end{enumerate} } } \only<4>{ \includegraphics[width=0.7\textwidth]{What_Comments} \includegraphics[width=\textwidth]{Why_Comments} } \end{frame} \begin{frame}{Section Comments} Section comments visually separate chunks of code. It is an excellent practice to distinguish types of analysis, or groups of code. \newline \vspace{1em} \onslide<2->{\includegraphics[width=\textwidth]{Section_comments.png}} \newline \vspace{1em} \onslide<3->{RStudio provides a keyboard shortcut to create these headers \texttt{(Cmd/Ctrl + Shift + R)}} \end{frame} %%%%%%%%%%%% \begin{frame}{\emph{if} statements} \only<1-8>{ \emph{If} only run code when certain condtions are met \newline \onslide<2->{ \textbf{Possible uses}} \begin{enumerate} \onslide<3->{\item Load a file only if it does not exist } \onslide<4->{\item Switch the value of an entry} \onslide<5->{\item Create a new dummy variable} \onslide<6->{\item Account for changes in column names on servers} \end{enumerate} \onslide<7->{Can be combined with \emph{else}} \newline \onslide<8->{The R function \texttt{ifelse()} can be a good shortcut} } \only<9>{\includegraphics[width=0.75\textwidth]{If.png}} \end{frame} %%%%%%%%%%%%%%%% \begin{frame}{Class Exercise} Use an if statement to write a csv file in a ``Data'' directory if the folder exists, otherwise it creates the directory first. \end{frame} %%%%%%%%%%%% \begin{frame}{functions} \only<1-6>{ \emph{functions} save a set of code to use later. \newline \onslide<2->{They are exactly the same as the functions you already use in R} \onslide<3->{Must define function inputs, code and output} \begin{enumerate} \onslide<4->{\item Use if you repeat code more than twice } \onslide<4->{\item Stores complex code avoids typos} \onslide<5->{\item Can be loaded in script files} \onslide<6->{\item Could be used in your own library} \end{enumerate} } \only<7>{\includegraphics[width=\textwidth]{Function.png}} \only<8>{The \texttt{try()} function can be useful when creating your own functions. It prevents the code from stopping after a failure. Use with care.} \end{frame} %%%%%%%%%%%%%%%% \begin{frame}{Class Exercise} Turn the previous if statement into a function. Allow the user to pass in the name of the folder that is created. \end{frame} %%%%%%%%%%%%%%%%%%% \begin{frame}{Class Exercise} \only<1>{\LARGE Remember proper naming of files, data and scripts. Provide clear comments.} \only<2>{ \begin{enumerate} \item Identify three data set you are interested in on FRED \item Load one data set using a URL saved as a character variable \item Create a raw data subdirectory and save the raw data into it \item Clean the data, at least update the column names \item Save the cleaned data as a CSV and an RDS file in a cleaned data subdirectory with proper names \item Include a comment on the first line of the file explain what the code is used for and why. \item Comment any other code as needed \item Turn this code into a function where the user passes in the URL, and column names \item Save function in a separate Rscript in a directory for scripts. Pay attention to the name \item In the main directory create a Rscript and in that script load script \item Use the function to clean all three data sets \item After this add a section of code to find the mean, and summary of the data \end{enumerate} } \end{frame} \end{document}