File indexing completed on 2024-05-12 04:02:07

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.R</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (R Script) - Theme (Breeze Dark)"/>
0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre>
0007 <span style="color:#a43340;font-weight:bold">## R Script Sample File</span>
0008 <span style="color:#a43340;font-weight:bold">## Source: http://www.rexamples.com</span>
0009 
0010 <span style="color:#a43340;font-weight:bold">## Basics</span>
0011 a <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#f67400">42.24</span>
0012 a <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#f67400">42</span><span style="color:#2980b9">i</span>
0013 a <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#f67400">42</span><span style="color:#2980b9">L</span>
0014 a <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#f67400">42</span>
0015 A <span style="color:#27ae60;font-weight:bold">&lt;-</span> a <span style="color:#3daee9">*</span> <span style="color:#f67400">2</span>  <span style="color:#7a7c7d"># R is case sensitive</span>
0016 <span style="color:#8e44ad">print</span>(a)
0017 <span style="color:#8e44ad">cat</span>(A, <span style="color:#f44f4f">"</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span>) <span style="color:#7a7c7d"># "84" is concatenated with "\n"</span>
0018 <span style="color:#fdbc4b;font-weight:bold">if</span>(A<span style="color:#3daee9">></span>a) <span style="color:#7a7c7d"># true, 84 > 42</span>
0019 {
0020   <span style="color:#8e44ad">cat</span>(A, <span style="color:#f44f4f">">"</span>, a, <span style="color:#f44f4f">"</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span>)
0021 }
0022 
0023 <span style="color:#a43340;font-weight:bold">## Functions</span>
0024 Square <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#fdbc4b;font-weight:bold">function</span>(x) {
0025   <span style="color:#8e44ad">return</span>(x<span style="color:#3daee9">^</span><span style="color:#f67400">2</span>)
0026 }
0027 
0028 <span style="color:#8e44ad">print</span>(<span style="color:#8e44ad">Square</span>(<span style="color:#f67400">4</span>))
0029 <span style="color:#8e44ad">print</span>(<span style="color:#8e44ad">Square</span>(<span style="color:#2980b9">x=</span><span style="color:#f67400">4</span>)) <span style="color:#7a7c7d"># same thing</span>
0030 
0031 <span style="color:#8e44ad">DoSomething</span>(<span style="color:#2980b9">color=</span><span style="color:#f44f4f">"red"</span>,<span style="color:#2980b9">number=</span><span style="color:#f67400">55</span>)
0032 
0033 <span style="color:#a43340;font-weight:bold">## Countdown</span>
0034 countdown <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#fdbc4b;font-weight:bold">function</span>(from)
0035 {
0036   <span style="color:#8e44ad">print</span>(from)
0037   <span style="color:#fdbc4b;font-weight:bold">while</span>(from<span style="color:#3daee9">!=</span><span style="color:#f67400">0</span>)
0038   {
0039     <span style="color:#8e44ad">Sys.sleep</span>(<span style="color:#f67400">1</span>)
0040     from <span style="color:#27ae60;font-weight:bold">&lt;-</span> from <span style="color:#3daee9">-</span> <span style="color:#f67400">1</span>
0041     <span style="color:#8e44ad">print</span>(from)
0042   }
0043 }
0044 
0045 <span style="color:#8e44ad">countdown</span>(<span style="color:#f67400">5</span>)
0046 
0047 <span style="color:#a43340;font-weight:bold">## Reading user input</span>
0048 readinteger <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#fdbc4b;font-weight:bold">function</span>()
0049 {
0050   n <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#8e44ad">readline</span>(<span style="color:#2980b9">prompt=</span><span style="color:#f44f4f">"Enter an integer: "</span>)
0051   n <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#8e44ad">as.integer</span>(n)
0052   <span style="color:#fdbc4b;font-weight:bold">if</span> (<span style="color:#8e44ad">is.na</span>(n)){
0053     n <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#8e44ad">readinteger</span>()
0054   }
0055   <span style="color:#8e44ad">return</span>(n)
0056 }
0057 <span style="color:#8e44ad">print</span>(<span style="color:#8e44ad">readinteger</span>())
0058 
0059 readinteger <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#fdbc4b;font-weight:bold">function</span>()
0060 {
0061   n <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#8e44ad">readline</span>(<span style="color:#2980b9">prompt=</span><span style="color:#f44f4f">"Enter an integer: "</span>)
0062   <span style="color:#fdbc4b;font-weight:bold">if</span>(<span style="color:#3daee9">!</span><span style="color:#8e44ad">grepl</span>(<span style="color:#f44f4f">"^[0-9]+$"</span>,n))
0063   {
0064     <span style="color:#8e44ad">return</span>(<span style="color:#8e44ad">readinteger</span>())
0065   }
0066 
0067   <span style="color:#8e44ad">return</span>(<span style="color:#8e44ad">as.integer</span>(n))
0068 }
0069 <span style="color:#8e44ad">print</span>(<span style="color:#8e44ad">readinteger</span>())
0070 
0071 <span style="color:#a43340;font-weight:bold">## Guess a random number game</span>
0072 readinteger <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#fdbc4b;font-weight:bold">function</span>()
0073 {
0074   n <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#8e44ad">readline</span>(<span style="color:#2980b9">prompt=</span><span style="color:#f44f4f">"Enter an integer: "</span>)
0075   <span style="color:#fdbc4b;font-weight:bold">if</span>(<span style="color:#3daee9">!</span><span style="color:#8e44ad">grepl</span>(<span style="color:#f44f4f">"^[0-9]+$"</span>,n))
0076   {
0077     <span style="color:#8e44ad">return</span>(<span style="color:#8e44ad">readinteger</span>())
0078   }
0079   <span style="color:#8e44ad">return</span>(<span style="color:#8e44ad">as.integer</span>(n))
0080 }
0081 
0082 <span style="color:#7a7c7d"># real program start here</span>
0083 
0084 num <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#8e44ad">round</span>(<span style="color:#8e44ad">runif</span>(<span style="color:#f67400">1</span>) <span style="color:#3daee9">*</span> <span style="color:#f67400">100</span>, <span style="color:#2980b9">digits =</span> <span style="color:#f67400">0</span>)
0085 guess <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#3daee9">-</span><span style="color:#f67400">1</span>
0086 
0087 <span style="color:#8e44ad">cat</span>(<span style="color:#f44f4f">"Guess a number between 0 and 100.</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span>)
0088 
0089 <span style="color:#fdbc4b;font-weight:bold">while</span>(guess <span style="color:#3daee9">!=</span> num)
0090 {
0091   guess <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#8e44ad">readinteger</span>()
0092   <span style="color:#fdbc4b;font-weight:bold">if</span> (guess <span style="color:#3daee9">==</span> num)
0093   {
0094     <span style="color:#8e44ad">cat</span>(<span style="color:#f44f4f">"Congratulations,"</span>, num, <span style="color:#f44f4f">"is right.</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span>)
0095   }
0096   <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#fdbc4b;font-weight:bold">if</span> (guess <span style="color:#3daee9">&lt;</span> num)
0097   {
0098     <span style="color:#8e44ad">cat</span>(<span style="color:#f44f4f">"It's bigger!</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span>)
0099   }
0100   <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#fdbc4b;font-weight:bold">if</span>(guess <span style="color:#3daee9">></span> num)
0101   {
0102     <span style="color:#8e44ad">cat</span>(<span style="color:#f44f4f">"It's smaller!</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">"</span>)
0103   }
0104 }
0105 
0106 <span style="color:#a43340;font-weight:bold">## Lists</span>
0107 <span style="color:#8e44ad">sum</span>(<span style="color:#f67400">0</span><span style="color:#3daee9">:</span><span style="color:#f67400">9</span>)
0108 <span style="color:#8e44ad">append</span>(LETTERS[<span style="color:#f67400">1</span><span style="color:#3daee9">:</span><span style="color:#f67400">13</span>],letters[<span style="color:#f67400">14</span><span style="color:#3daee9">:</span><span style="color:#f67400">26</span>])
0109 <span style="color:#8e44ad">c</span>(<span style="color:#f67400">1</span>,<span style="color:#f67400">6</span>,<span style="color:#f67400">4</span>,<span style="color:#f67400">9</span>)<span style="color:#3daee9">*</span><span style="color:#f67400">2</span>
0110 something <span style="color:#27ae60;font-weight:bold">&lt;-</span> <span style="color:#8e44ad">c</span>(<span style="color:#f67400">1</span>,<span style="color:#f67400">4</span>,letters[<span style="color:#f67400">2</span>])  <span style="color:#7a7c7d"># indices start at one, you get (1,4,"b")</span>
0111 <span style="color:#8e44ad">length</span>(something)
0112 
0113 <span style="color:#a43340;font-weight:bold">## margrittr's pipe</span>
0114 diamonds <span style="color:#3daee9">%>%</span>
0115   <span style="color:#8e44ad">filter</span>(price <span style="color:#3daee9">></span> <span style="color:#f67400">1000</span>) <span style="color:#3daee9">%>%</span>
0116   <span style="color:#8e44ad">group_by</span>(cut) <span style="color:#3daee9">%>%</span>
0117   <span style="color:#8e44ad">tally</span>() <span style="color:#3daee9">%>%</span> 
0118   <span style="color:#8e44ad">rename</span>(<span style="color:#2980b9">tally =</span> n) <span style="color:#3daee9">%>%</span> 
0119   <span style="color:#8e44ad">arrange</span>(<span style="color:#3daee9">-</span>tally) <span style="color:#3daee9">%>%</span> 
0120   <span style="color:#8e44ad">mutate</span>(<span style="color:#2980b9">pct =</span> tally <span style="color:#3daee9">/</span> <span style="color:#8e44ad">sum</span>(tally)) <span style="color:#27ae60;font-weight:bold">-></span> df
0121 
0122 <span style="color:#a43340;font-weight:bold">## R native pipes (R > 4.1)</span>
0123 <span style="color:#8e44ad">Sys.setenv</span>(<span style="color:#f44f4f">"_R_USE_PIPEBIND_"</span><span style="color:#27ae60;font-weight:bold">=</span> <span style="color:#27aeae;font-weight:bold">TRUE</span>)
0124 mtcars <span style="color:#3daee9">|></span> x <span style="color:#3daee9">=></span> <span style="color:#8e44ad">lm</span>(mpg <span style="color:#3daee9">~</span> cyl, <span style="color:#2980b9">data =</span> x)
0125 
0126 <span style="color:#a43340;font-weight:bold">## ggplot2 </span>
0127 plot <span style="color:#27ae60;font-weight:bold">=</span> <span style="color:#8e44ad">ggplot</span>(diamonds, <span style="color:#8e44ad">aes</span>(<span style="color:#2980b9">x =</span> price, <span style="color:#2980b9">y =</span> carat)) <span style="color:#3daee9">+</span>
0128   <span style="color:#8e44ad">geom_point</span>(<span style="color:#2980b9">alpha =</span> <span style="color:#f67400">0.3</span>, <span style="color:#2980b9">colour =</span> <span style="color:#f44f4f">'steelblue'</span>) <span style="color:#3daee9">+</span>
0129   <span style="color:#8e44ad">labs</span>(
0130     <span style="color:#2980b9">title =</span> <span style="color:#f44f4f">"ggplot diamonds"</span>,
0131     <span style="color:#2980b9">x =</span> <span style="color:#f44f4f">"Price, $"</span>,
0132     <span style="color:#2980b9">y =</span> <span style="color:#f44f4f">"Carat"</span>
0133   ) <span style="color:#3daee9">+</span>
0134   <span style="color:#8e44ad">facet_wrap</span>(<span style="color:#3daee9">~</span> cut) <span style="color:#3daee9">+</span>
0135   <span style="color:#8e44ad">theme_minimal</span>()
0136 
0137 plot <span style="color:#3daee9">+</span> <span style="color:#8e44ad">coord_flip</span>()
0138 </pre></body></html>