\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{solisoleille (soleille01)} \pdfinfo{ /Title (r-beginner-syntax.pdf) /Creator (Cheatography) /Author (solisoleille (soleille01)) /Subject (R - Beginner Syntax Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{7772A3} \definecolor{LightBackground}{HTML}{F6F6F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{R - Beginner Syntax Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{solisoleille (soleille01)} via \textcolor{DarkBackground}{\uline{cheatography.com/130728/cs/33528/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}solisoleille (soleille01) \\ \uline{cheatography.com/soleille01} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 7th August, 2022.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{General variable assignment}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Assignment statements: \newline % Row Count 1 (+ 1) `var\_name = new\_value` OR \newline % Row Count 2 (+ 1) `var\_name \textless{}- new\_value`% Row Count 3 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Variables names:}} The variable name must start with a letter and can contain numbers and letters as well as the special characters underscore and period. \newline {\bf{Note:}} Contrary to other languages R does not have a command for declaring a variable, but instead a variable is created once a value is assigned to it.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.74655 cm} x{4.23045 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Arithmetic operators}} \tn % Row 0 \SetRowColor{LightBackground} + & Addition - adds together two values. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} - & Subtraction - subtracts one value from another. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} * & Multiplication - multiplies two values together. \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} / & Division - divides one value from the other. \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} ** OR \textasciicircum{} & Exponential - to the power of the next value \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{Arithmetic operators:}} Used to perform common mathematical operations. \newline {\bf{Precedence:}} Precedence and associativity are as normal as in maths.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Access variables of a dataframe}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Calling individual variables from a dataframe: \newline % Row Count 1 (+ 1) `dataframe\$var\_name`% Row Count 2 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.09494 cm} x{3.88206 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Some misc commands}} \tn % Row 0 \SetRowColor{LightBackground} cat() & Prints all of its comma separated arguments (concatenating them). \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \seqsplit{read.csv()} & Reads a csv file (in the same location) \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} head() & To get a broad overview of the variables that are contained in the dataframe as well as the different variable levels (first 6 rows(?)) \tn % Row Count 10 (+ 5) % Row 3 \SetRowColor{white} \seqsplit{summary()} & Gives the summary statistics of a variable - min, 1st quartile, median, mean, 3rd quartile, maximum \tn % Row Count 14 (+ 4) % Row 4 \SetRowColor{LightBackground} \seqsplit{as.factor()} & Convert to categorical variable \tn % Row Count 16 (+ 2) % Row 5 \SetRowColor{white} \seqsplit{barplot()} & Creates a barplot for the given table \tn % Row Count 18 (+ 2) % Row 6 \SetRowColor{LightBackground} table() & {[}TBC{]} \tn % Row Count 19 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{Internal help option:}} Writing ? in front of the command opens R documentation of the command.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Vector creation and assignment}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Creating a list of numbers manually: \newline % Row Count 1 (+ 1) `vector\_name \textless{}- c(no1, no2, no3, {\emph{etc.}})` \newline % Row Count 2 (+ 1) Creating a list of numbers in a sequence: \newline % Row Count 3 (+ 1) `vector\_name \textless{}- seq(start, stop, step)` (starts from start and ends at exactly stop at increments of step)% Row Count 6 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Vector:}} A vector is a 1D set of the same type of object. Most often, a vector will simply be a sequence of numbers. \newline {\bf{Note:}} Similarly to variables, a vector is created once a value is assigned to it.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Comments}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Single line comments: \newline % Row Count 1 (+ 1) `\# Comment1` \newline % Row Count 2 (+ 1) `code \# Comment2`% Row Count 3 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Comments:}} Comments are ignored by the computer, they exist simply to make the code easier for people to understand.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Indexing vectors}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Getting 1 index: \newline % Row Count 1 (+ 1) `vec\_name{[}index\_no{]}` \newline % Row Count 2 (+ 1) Getting multiple index in a row: \newline % Row Count 3 (+ 1) `vec\_name{[}start\_index:end\_index{]}`% Row Count 4 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Note:}} The indexing is 1-based so it starts at 1 instead of 0 like most other programming languages do.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Basic math functions}} \tn % Row 0 \SetRowColor{LightBackground} log(x) & Natural log of x \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} exp(x) & Exponential of x \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} max(x) & Largest element in the set x \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} min(x) & Smallest element in the set x \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} sum(x) & Sum all values in x \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} mean(x) & Mean of x \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} median(x) & Median of x \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} round(x,n) & Round x to n decimal places \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} length(x) & Number of values in x \tn % Row Count 9 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}