<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>R &amp; Tools | Chen Xing</title>
    <link>https://chenxing.space/category/r-tools/</link>
      <atom:link href="https://chenxing.space/category/r-tools/index.xml" rel="self" type="application/rss+xml" />
    <description>R &amp; Tools</description>
    <generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Sun, 28 Jan 2024 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://chenxing.space/media/sharing.png</url>
      <title>R &amp; Tools</title>
      <link>https://chenxing.space/category/r-tools/</link>
    </image>
    
    <item>
      <title>How to Use GPT in R/Python</title>
      <link>https://chenxing.space/blog/how-to-use-gpt-in-r-python/</link>
      <pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/how-to-use-gpt-in-r-python/</guid>
      <description>&lt;h2 id=&#34;to-read&#34;&gt;To read&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.infoworld.com/article/3694611/8-chatgpt-tools-for-r-programming.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;8 ChatGPT tools for R programming&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Google Search Operator</title>
      <link>https://chenxing.space/blog/google-search-operator/</link>
      <pubDate>Tue, 05 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/google-search-operator/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s an cheatsheet with examples for each Google search operator:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;site:&lt;/strong&gt; - Restricts your search to a specific website or domain.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;site:wikipedia.org quantum physics&lt;/code&gt; searches for information about quantum physics only on Wikipedia.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;filetype:&lt;/strong&gt; - Limits results to a specific file type.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;filetype:pdf statistics textbook&lt;/code&gt; searches for PDF documents related to statistics textbooks.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;intext:&lt;/strong&gt; - Searches for specific keywords within the body of a webpage.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;intext:marketing strategies&lt;/code&gt; finds pages containing the phrase &amp;ldquo;marketing strategies.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;intitle:&lt;/strong&gt; - Searches for specific keywords in the titles of webpages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;intitle:economics research methods&lt;/code&gt; finds pages with &amp;ldquo;economics research methods&amp;rdquo; in their titles.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;inurl:&lt;/strong&gt; - Searches for specific keywords in the URLs of webpages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;inurl:statistics data&lt;/code&gt; finds pages with &amp;ldquo;statistics data&amp;rdquo; in their URLs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;related:&lt;/strong&gt; - Finds websites related to a specified URL.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;related:nytimes.com&lt;/code&gt; lists sites related to The New York Times.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;OR:&lt;/strong&gt; - Used to search for pages that contain either of two terms.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;marketing OR advertising&lt;/code&gt; finds pages containing either &amp;ldquo;marketing&amp;rdquo; or &amp;ldquo;advertising.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;-&amp;ldquo;word&amp;rdquo;&lt;/strong&gt; - Excludes a specific word from search results.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;data analysis -Excel&lt;/code&gt; finds pages about data analysis but excludes those mentioning Excel.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;phrase search&amp;rdquo;&lt;/strong&gt; - Enclose phrases in double quotation marks for exact phrase matching.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;&amp;quot;consumer behavior&amp;quot;&lt;/code&gt; finds pages containing that exact phrase.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;$*$ - Use it as a wildcard to replace one or more words in a search query.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;quantitative * techniques&lt;/code&gt; returns results with various terms in place of the asterisk.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;define:&lt;/strong&gt; - Provides definitions for a specific term.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;define:marketing&lt;/code&gt; gives you the definition of marketing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AROUND(x):&lt;/strong&gt; - Finds words that are within a certain number of words apart.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: &lt;code&gt;economics AROUND(5) statistics&lt;/code&gt; searches for pages where &amp;ldquo;economics&amp;rdquo; and &amp;ldquo;statistics&amp;rdquo; are within five words of each other.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;daterange: - Search for results within a specific date range.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Example: marketing strategies daterange:2022-01-01..2022-12-31&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>Awesome ChatGPT Prompts for PhD students</title>
      <link>https://chenxing.space/blog/awesome-chatgpt-prompts-for-phd-students/</link>
      <pubDate>Sun, 26 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/awesome-chatgpt-prompts-for-phd-students/</guid>
      <description>&lt;p&gt;&lt;strong&gt;ChatGPT stands for “Chat Generative Pre-trained Transformer”&lt;/strong&gt; and is built on the transformer architecture, which is a neural network architecture that has been shown to be highly effective in natural language processing tasks.&lt;/p&gt;
&lt;p&gt;As a PhD student, how can I make the most of ChatGPT? Here, I summarize some useful tips and prompts.&lt;/p&gt;
&lt;h2 id=&#34;tips-for-great-prompts&#34;&gt;Tips for great prompts&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Start prompts with a description of the AI’s role.
&lt;ul&gt;
&lt;li&gt;e.g., “I want you to act as {x}”.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Use it for common tasks.&lt;/li&gt;
&lt;li&gt;Offer context.&lt;/li&gt;
&lt;li&gt;Be precise.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Act as a university professor&lt;/strong&gt; in &lt;u&gt;Bayesian Statistics&lt;/u&gt;, &lt;strong&gt;explain&lt;/strong&gt; &lt;u&gt;the concept of MCMC&lt;/u&gt; in simple terms to &lt;u&gt;a 2nd year undergraduate student with a statistics and probability background&lt;/u&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;collection-of-useful-prompts&#34;&gt;Collection of Useful Prompts&lt;/h2&gt;
&lt;h3 id=&#34;prompts-for-understanding-concepts&#34;&gt;Prompts for understanding concepts&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Act as a university professor&lt;/strong&gt; in [insert field of studies], &lt;strong&gt;explain the concept&lt;/strong&gt; of [the term] in simple terms&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What is the history of Y?”&lt;/strong&gt; – This prompt can be used to get a brief overview of the history of a specific subject, such as a particular invention, historical figure, or cultural tradition.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Summarize the main points of Z”&lt;/strong&gt; – This prompt can be used to get a concise overview of a longer piece of text, such as a book, article, or research paper.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What are the key characteristics of X?”&lt;/strong&gt; – This prompt can be used to get a list of the key characteristics of a specific subject, such as a species of animal, a type of plant, or a historical period.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“How does X work?”&lt;/strong&gt; – This prompt can be used to get a detailed explanation of how a specific process or system works, such as a machine, a technology, or a social system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“List the pros and cons of Y”&lt;/strong&gt; – This prompt can be used to get a balanced overview of the advantages and disadvantages of a specific subject, such as a policy, a technology, or a method of teaching.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What are the similarities and differences between X and Y?”&lt;/strong&gt; – This prompt can be used to compare and contrast two subjects, such as two historical events, two scientific theories, or two teaching methods.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What are the causes of Z?”&lt;/strong&gt; – This prompt can be used to get a list of the underlying causes of a specific phenomenon, such as a historical event, a natural disaster, or a social problem.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What are the effects of X?”&lt;/strong&gt; – This prompt can be used to get a list of the outcomes or consequences of a specific subject, such as a policy, a technology, or a natural event.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What are the solutions to Y?”&lt;/strong&gt; – This prompt can be used to get a list of potential solutions to a specific problem or challenge, such as a social issue, a technical challenge, or a scientific question.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Provide examples of lesson plans for [subject]”&lt;/strong&gt; – This prompt can generate a list of detailed lesson plans for a specific subject, including objectives, activities, and assessments.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Write a song&lt;/strong&gt; in the style of [Artist] &lt;strong&gt;that Explains&lt;/strong&gt; [Topic]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;prompt-for-academic-research&#34;&gt;Prompt for Academic Research&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Literature Review Assistance&lt;/strong&gt;: “Can you summarize the key findings and arguments of [insert academic paper title]?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Brainstorming Ideas&lt;/strong&gt;: “I’m working on a research project about [insert topic]. Can you suggest some potential research questions or hypotheses?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Methodology Suggestions&lt;/strong&gt;: “What are some common research methods used in [insert field of study]?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Statistical Analysis&lt;/strong&gt;: “Can you explain the difference between a t-test and an ANOVA?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Writing Assistance&lt;/strong&gt;: “Can you help me rephrase this sentence/paragraph in a more academic tone?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Citation Guidance&lt;/strong&gt;: “What is the correct way to cite a book in APA style?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Historical Context&lt;/strong&gt;: “Can you provide a brief overview of the history of [insert topic]?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Concept Explanation&lt;/strong&gt;: “Can you explain the concept of [insert complex concept] in simple terms?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Paper Structuring&lt;/strong&gt;: “What is the typical structure of a research paper in [insert field of study]?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data Interpretation&lt;/strong&gt;: “What conclusions might be drawn from a dataset where [insert observed trend]?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ethical Considerations&lt;/strong&gt;: “What are some ethical considerations when conducting research on [insert topic]?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Theory Application&lt;/strong&gt;: “How might [insert theory] apply to a situation where [insert scenario]?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Research Proposal Feedback&lt;/strong&gt;: “Here’s a brief outline of my research proposal on [insert topic]. Can you provide some feedback?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Language Translation&lt;/strong&gt;: “Can you translate this [insert language] phrase to English?”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Proofreading&lt;/strong&gt;: “Can you check this paragraph for grammatical errors?”&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;prompt-engineering&#34;&gt;Prompt Engineering&lt;/h2&gt;
&lt;p&gt;We can use the following to improve a prompt :)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You are a prompt generator that generates the best prompts to get the best possible answers from an AI. Generate a prompt that does the following: &amp;lt;insert&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;















&lt;figure  &gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img src=&#34;https://raw.githubusercontent.com/chenx2018/blogdown-image/main/img/202303271216562.png&#34; alt=&#34;截屏2023-03-27 12.04.47&#34; loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&#34;fact-checking-chatgpt&#34;&gt;Fact-Checking ChatGPT&lt;/h2&gt;
&lt;p&gt;Of course, just because ChatGPT is powerful, it &lt;strong&gt;doesn’t mean that it will always provide correct information&lt;/strong&gt;, which can lead to confusion in your studies. So what can you do to &lt;strong&gt;confirm that the information&lt;/strong&gt; that you are getting is correct? Well, there are &lt;strong&gt;3 great ways to do so&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ask ChatGPT to cite the sources&lt;/strong&gt;: After getting an answer, simply giving the prompt “&lt;strong&gt;Cite your sources for this information with website links&lt;/strong&gt;” will have ChatGPT provide the sources. You can check the links of the sources to be sure. In my case, it gave sources that didn’t contain false information.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Do a Google Search for the information that you are not sure of&lt;/strong&gt;: If you are not sure about the answer you are getting, or you are new to the topic, doing a quick search on Google to make sure it is correct is a helpful way of making sure you are learning the right information.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Providing the information yourself&lt;/strong&gt;: You can ensure you are not getting anything wrong by just providing a part of your study material (if you don’t have an E-book version, get an OCR reader) and asking ChatGPT to summarise it or just asking related questions.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference&lt;/h2&gt;
&lt;p&gt;The GitHub repo &lt;a href=&#34;https://github.com/f/awesome-chatgpt-prompts&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Awesome ChatGPT Prompts&lt;/a&gt; is a good resource to check.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.studysmarter.co.uk/magazine/chatgpt-for-studying/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ChatGPT for Studying: How to use the AI-powered chatbot to learn anything you want&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.learnprompt.org/chat-gpt-prompts-for-education/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Unlocking the Potential of AI in Education: ChatGPT Prompts and Use Cases&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/f/awesome-chatgpt-prompts&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Awesome ChatGPT Prompts&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>How to use DT table in blogdown?</title>
      <link>https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/</link>
      <pubDate>Fri, 08 Jul 2022 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/</guid>
      <description>&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/kePrint/kePrint.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/lightable/lightable.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/htmlwidgets/htmlwidgets.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/datatables-css/datatables-crosstalk.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/datatables-binding/datatables.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/jquery/jquery-3.6.0.min.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/dt-core/css/jquery.dataTables.min.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;link href=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/dt-core/css/jquery.dataTables.extra.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/dt-core/js/jquery.dataTables.min.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/crosstalk/css/crosstalk.min.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/crosstalk/js/crosstalk.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/htmlwidgets/htmlwidgets.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/pymjs/pym.v1.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/widgetframe-binding/widgetframe.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/htmlwidgets/htmlwidgets.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/pymjs/pym.v1.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/how-to-use-dt-table-in-blogdown/index.en_files/widgetframe-binding/widgetframe.js&#34;&gt;&lt;/script&gt;
&lt;p&gt;The &lt;code&gt;DT::datatable&lt;/code&gt; object often does not work appropriately in the &lt;code&gt;blogdown&lt;/code&gt; post. How to solve this issue?&lt;/p&gt;
&lt;p&gt;It seems no good answers for this problem. &lt;code&gt;DT&lt;/code&gt; + &lt;code&gt;widgetframe&lt;/code&gt; 📦 is a potential solution. I will do some experiment in this post.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tidyverse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# this is the package to solve above issue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widgetframe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After loading the packages, let’s make some tables.&lt;/p&gt;
&lt;h2 id=&#34;knit-file-format&#34;&gt;Knit File Format&lt;/h2&gt;
&lt;div class=&#34;alert alert-note&#34;&gt;
  &lt;div&gt;
    Here I am using &lt;code&gt;Rmarkdown&lt;/code&gt; rather than &lt;code&gt;Rmd&lt;/code&gt;!
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;tibble&#34;&gt;Tibble&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;iris&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;as_tibble&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;## # A tibble: 10 × 5
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##           &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt;        &amp;lt;dbl&amp;gt;       &amp;lt;dbl&amp;gt; &amp;lt;fct&amp;gt;  
##  1          5.1         3.5          1.4         0.2 setosa 
##  2          4.9         3            1.4         0.2 setosa 
##  3          4.7         3.2          1.3         0.2 setosa 
##  4          4.6         3.1          1.5         0.2 setosa 
##  5          5           3.6          1.4         0.2 setosa 
##  6          5.4         3.9          1.7         0.4 setosa 
##  7          4.6         3.4          1.4         0.3 setosa 
##  8          5           3.4          1.5         0.2 setosa 
##  9          4.4         2.9          1.4         0.2 setosa 
## 10          4.9         3.1          1.5         0.1 setosa
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;kableextra&#34;&gt;kableExtra&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;iris&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# this is a wrapping function for kbl in kableExtra&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;zetaEDA&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;print_kbl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;cap&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Test kableExtra&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table class=&#34;table table-striped&#34; style=&#34;width: auto !important; margin-left: auto; margin-right: auto;&#34;&gt;
&lt;caption&gt;
Table 1: Test kableExtra
&lt;/caption&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
Sepal.Length
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
Sepal.Width
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
Petal.Length
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
Petal.Width
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
Species
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
5.1
&lt;/td&gt;
&lt;td&gt;
3.5
&lt;/td&gt;
&lt;td&gt;
1.4
&lt;/td&gt;
&lt;td&gt;
0.2
&lt;/td&gt;
&lt;td&gt;
setosa
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
4.9
&lt;/td&gt;
&lt;td&gt;
3.0
&lt;/td&gt;
&lt;td&gt;
1.4
&lt;/td&gt;
&lt;td&gt;
0.2
&lt;/td&gt;
&lt;td&gt;
setosa
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
4.7
&lt;/td&gt;
&lt;td&gt;
3.2
&lt;/td&gt;
&lt;td&gt;
1.3
&lt;/td&gt;
&lt;td&gt;
0.2
&lt;/td&gt;
&lt;td&gt;
setosa
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
4.6
&lt;/td&gt;
&lt;td&gt;
3.1
&lt;/td&gt;
&lt;td&gt;
1.5
&lt;/td&gt;
&lt;td&gt;
0.2
&lt;/td&gt;
&lt;td&gt;
setosa
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
5.0
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
3.6
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
1.4
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
0.2
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
setosa
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;gt&#34;&gt;gt&lt;/h2&gt;
&lt;p&gt;Note that &lt;code&gt;gt&lt;/code&gt; table has some displaying problem in &lt;code&gt;Rmarkdown&lt;/code&gt;, but it works fine in &lt;code&gt;Rmd&lt;/code&gt;. Really drives me crazy…&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;iris&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;gt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;gt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div id=&#34;hkrnmkylzs&#34; style=&#34;overflow-x:auto;overflow-y:auto;width:auto;height:auto;&#34;&gt;
&lt;style&gt;html {
  font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, Oxygen, Ubuntu, Cantarell, &#39;Helvetica Neue&#39;, &#39;Fira Sans&#39;, &#39;Droid Sans&#39;, Arial, sans-serif;
}
&lt;p&gt;#hkrnmkylzs .gt_table {
display: table;
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
color: #333333;
font-size: 16px;
font-weight: normal;
font-style: normal;
background-color: #FFFFFF;
width: auto;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #A8A8A8;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #A8A8A8;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_heading {
background-color: #FFFFFF;
text-align: center;
border-bottom-color: #FFFFFF;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_title {
color: #333333;
font-size: 125%;
font-weight: initial;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 5px;
padding-right: 5px;
border-bottom-color: #FFFFFF;
border-bottom-width: 0;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_subtitle {
color: #333333;
font-size: 85%;
font-weight: initial;
padding-top: 0;
padding-bottom: 6px;
padding-left: 5px;
padding-right: 5px;
border-top-color: #FFFFFF;
border-top-width: 0;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_bottom_border {
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_col_headings {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_col_heading {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: bottom;
padding-top: 5px;
padding-bottom: 6px;
padding-left: 5px;
padding-right: 5px;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_column_spanner_outer {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: normal;
text-transform: inherit;
padding-top: 0;
padding-bottom: 0;
padding-left: 4px;
padding-right: 4px;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_column_spanner_outer:first-child {
padding-left: 0;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_column_spanner_outer:last-child {
padding-right: 0;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_column_spanner {
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
vertical-align: bottom;
padding-top: 5px;
padding-bottom: 5px;
overflow-x: hidden;
display: inline-block;
width: 100%;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_group_heading {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_empty_group_heading {
padding: 0.5px;
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
vertical-align: middle;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_from_md &amp;gt; :first-child {
margin-top: 0;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_from_md &amp;gt; :last-child {
margin-bottom: 0;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
margin: 10px;
border-top-style: solid;
border-top-width: 1px;
border-top-color: #D3D3D3;
border-left-style: none;
border-left-width: 1px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 1px;
border-right-color: #D3D3D3;
vertical-align: middle;
overflow-x: hidden;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_stub {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-right-style: solid;
border-right-width: 2px;
border-right-color: #D3D3D3;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_stub_row_group {
color: #333333;
background-color: #FFFFFF;
font-size: 100%;
font-weight: initial;
text-transform: inherit;
border-right-style: solid;
border-right-width: 2px;
border-right-color: #D3D3D3;
padding-left: 5px;
padding-right: 5px;
vertical-align: top;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_row_group_first td {
border-top-width: 2px;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_first_summary_row {
border-top-style: solid;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_first_summary_row.thick {
border-top-width: 2px;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_last_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_grand_summary_row {
color: #333333;
background-color: #FFFFFF;
text-transform: inherit;
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_first_grand_summary_row {
padding-top: 8px;
padding-bottom: 8px;
padding-left: 5px;
padding-right: 5px;
border-top-style: double;
border-top-width: 6px;
border-top-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_striped {
background-color: rgba(128, 128, 128, 0.05);
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_table_body {
border-top-style: solid;
border-top-width: 2px;
border-top-color: #D3D3D3;
border-bottom-style: solid;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_footnotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_footnote {
margin: 0px;
font-size: 90%;
padding-left: 4px;
padding-right: 4px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_sourcenotes {
color: #333333;
background-color: #FFFFFF;
border-bottom-style: none;
border-bottom-width: 2px;
border-bottom-color: #D3D3D3;
border-left-style: none;
border-left-width: 2px;
border-left-color: #D3D3D3;
border-right-style: none;
border-right-width: 2px;
border-right-color: #D3D3D3;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_sourcenote {
font-size: 90%;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 5px;
padding-right: 5px;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_left {
text-align: left;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_center {
text-align: center;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_right {
text-align: right;
font-variant-numeric: tabular-nums;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_font_normal {
font-weight: normal;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_font_bold {
font-weight: bold;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_font_italic {
font-style: italic;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_super {
font-size: 65%;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_two_val_uncert {
display: inline-block;
line-height: 1em;
text-align: right;
font-size: 60%;
vertical-align: -0.25em;
margin-left: 0.1em;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_footnote_marks {
font-style: italic;
font-weight: normal;
font-size: 75%;
vertical-align: 0.4em;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_asterisk {
font-size: 100%;
vertical-align: 0;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_slash_mark {
font-size: 0.7em;
line-height: 0.7em;
vertical-align: 0.15em;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_fraction_numerator {
font-size: 0.6em;
line-height: 0.6em;
vertical-align: 0.45em;
}&lt;/p&gt;
&lt;p&gt;#hkrnmkylzs .gt_fraction_denominator {
font-size: 0.6em;
line-height: 0.6em;
vertical-align: -0.05em;
}
&lt;/style&gt;&lt;/p&gt;
&lt;table class=&#34;gt_table&#34;&gt;
  &lt;thead class=&#34;gt_col_headings&#34;&gt;
    &lt;tr&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_right&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Sepal.Length&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_right&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Sepal.Width&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_right&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Petal.Length&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_right&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Petal.Width&lt;/th&gt;
      &lt;th class=&#34;gt_col_heading gt_columns_bottom_border gt_center&#34; rowspan=&#34;1&#34; colspan=&#34;1&#34;&gt;Species&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody class=&#34;gt_table_body&#34;&gt;
    &lt;tr&gt;&lt;td class=&#34;gt_row gt_right&#34;&gt;5.1&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;3.5&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;1.4&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;0.2&lt;/td&gt;
&lt;td class=&#34;gt_row gt_center&#34;&gt;setosa&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td class=&#34;gt_row gt_right&#34;&gt;4.9&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;3.0&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;1.4&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;0.2&lt;/td&gt;
&lt;td class=&#34;gt_row gt_center&#34;&gt;setosa&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td class=&#34;gt_row gt_right&#34;&gt;4.7&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;3.2&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;1.3&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;0.2&lt;/td&gt;
&lt;td class=&#34;gt_row gt_center&#34;&gt;setosa&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td class=&#34;gt_row gt_right&#34;&gt;4.6&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;3.1&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;1.5&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;0.2&lt;/td&gt;
&lt;td class=&#34;gt_row gt_center&#34;&gt;setosa&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td class=&#34;gt_row gt_right&#34;&gt;5.0&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;3.6&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;1.4&lt;/td&gt;
&lt;td class=&#34;gt_row gt_right&#34;&gt;0.2&lt;/td&gt;
&lt;td class=&#34;gt_row gt_center&#34;&gt;setosa&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 id=&#34;dt&#34;&gt;DT&lt;/h2&gt;
&lt;p&gt;If you need to sort, search or add url link in the table, you will find the &lt;code&gt;DT::datatable&lt;/code&gt; super helpful.&lt;/p&gt;
&lt;div class=&#34;alert alert-warning&#34;&gt;
  &lt;div&gt;
    However, usually &lt;code&gt;DT&lt;/code&gt; table cannot appropriately display in blogdown environment.
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For example,&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;iris&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;DT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;datatable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;caption&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;DOES NOT WORK Table&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div id=&#34;htmlwidget-1&#34; style=&#34;width:100%;height:auto;&#34; class=&#34;datatables html-widget&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;application/json&#34; data-for=&#34;htmlwidget-1&#34;&gt;{&#34;x&#34;:{&#34;filter&#34;:&#34;none&#34;,&#34;vertical&#34;:false,&#34;caption&#34;:&#34;&lt;caption&gt;DOES NOT WORK Table&lt;\/caption&gt;&#34;,&#34;data&#34;:[[&#34;1&#34;,&#34;2&#34;,&#34;3&#34;,&#34;4&#34;,&#34;5&#34;],[5.1,4.9,4.7,4.6,5],[3.5,3,3.2,3.1,3.6],[1.4,1.4,1.3,1.5,1.4],[0.2,0.2,0.2,0.2,0.2],[&#34;setosa&#34;,&#34;setosa&#34;,&#34;setosa&#34;,&#34;setosa&#34;,&#34;setosa&#34;]],&#34;container&#34;:&#34;&lt;table class=\&#34;display\&#34;&gt;\n  &lt;thead&gt;\n    &lt;tr&gt;\n      &lt;th&gt; &lt;\/th&gt;\n      &lt;th&gt;Sepal.Length&lt;\/th&gt;\n      &lt;th&gt;Sepal.Width&lt;\/th&gt;\n      &lt;th&gt;Petal.Length&lt;\/th&gt;\n      &lt;th&gt;Petal.Width&lt;\/th&gt;\n      &lt;th&gt;Species&lt;\/th&gt;\n    &lt;\/tr&gt;\n  &lt;\/thead&gt;\n&lt;\/table&gt;&#34;,&#34;options&#34;:{&#34;columnDefs&#34;:[{&#34;className&#34;:&#34;dt-right&#34;,&#34;targets&#34;:[1,2,3,4]},{&#34;orderable&#34;:false,&#34;targets&#34;:0}],&#34;order&#34;:[],&#34;autoWidth&#34;:false,&#34;orderClasses&#34;:false}},&#34;evals&#34;:[],&#34;jsHooks&#34;:[]}&lt;/script&gt;
&lt;p&gt;We have to use &lt;code&gt;widgetframe&lt;/code&gt; package. See more details for this package &lt;a href=&#34;https://cran.r-project.org/web/packages/widgetframe/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;iris&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;DT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;datatable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;caption&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;It Works Table&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rownames&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;FALSE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;selection&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;escape&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;FALSE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;cell-border hover compact stripe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;fillContainer&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bp&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;options&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;dom&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;frtip&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;pageLength&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;scrollX&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;widgetframe&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;frameWidget&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;300&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;100%&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div id=&#34;htmlwidget-2&#34; style=&#34;width:100%;height:300px;&#34; class=&#34;widgetframe html-widget&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;application/json&#34; data-for=&#34;htmlwidget-2&#34;&gt;{&#34;x&#34;:{&#34;url&#34;:&#34;index.en_files/figure-html//widgets/widget_unnamed-chunk-5.html&#34;,&#34;options&#34;:{&#34;xdomain&#34;:&#34;*&#34;,&#34;allowfullscreen&#34;:false,&#34;lazyload&#34;:false}},&#34;evals&#34;:[],&#34;jsHooks&#34;:[]}&lt;/script&gt;
&lt;p&gt;Now it works fine.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I am also curious about the bootstrap in &lt;code&gt;DT::datatable&lt;/code&gt; .&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dt2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;iris&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;DT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;datatable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;caption&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Bootstrap Table&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;style&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;bootstrap&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rownames&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;FALSE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;selection&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;escape&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;FALSE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;cell-border hover compact stripe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;fillContainer&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;bp&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;options&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;dom&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;frtip&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;pageLength&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;scrollX&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;widgetframe&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;frameWidget&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dt2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;300&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;100%&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div id=&#34;htmlwidget-3&#34; style=&#34;width:100%;height:300px;&#34; class=&#34;widgetframe html-widget&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;application/json&#34; data-for=&#34;htmlwidget-3&#34;&gt;{&#34;x&#34;:{&#34;url&#34;:&#34;index.en_files/figure-html//widgets/widget_unnamed-chunk-6.html&#34;,&#34;options&#34;:{&#34;xdomain&#34;:&#34;*&#34;,&#34;allowfullscreen&#34;:false,&#34;lazyload&#34;:false}},&#34;evals&#34;:[],&#34;jsHooks&#34;:[]}&lt;/script&gt;
&lt;p&gt;Well, &lt;strong&gt;DOES NOT WORK&lt;/strong&gt;…&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;
&lt;p&gt;When using DT in blogdown post, do 2 step:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Save &lt;code&gt;DT::datatable&lt;/code&gt; to an object.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;widgetframe::frameWidget&lt;/code&gt; .&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>Add Floating TOC in Blogdown</title>
      <link>https://chenxing.space/blog/add-floating-toc-in-blogdown/</link>
      <pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/add-floating-toc-in-blogdown/</guid>
      <description>&lt;h2 id=&#34;motivation&#34;&gt;Motivation&lt;/h2&gt;
&lt;p&gt;Question: How to add a floating TOC in my blogdown post?&lt;/p&gt;
&lt;p&gt;Answer: It is not straightforward. I try to follow the &lt;a href=&#34;https://mickael.canouil.fr/post/floating-toc-in-blogdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mickael&amp;rsquo;s approach&lt;/a&gt; and &lt;a href=&#34;http://ericfong.ca/post/floatingtoc/#&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this one&lt;/a&gt;, then do the experiment.&lt;/p&gt;
&lt;h2 id=&#34;potential-approach&#34;&gt;Potential Approach&lt;/h2&gt;
&lt;h3 id=&#34;step-1&#34;&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Create &lt;code&gt;&amp;lt;root&amp;gt;/layouts/_default/single.html&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{- define &amp;quot;main&amp;quot; -}}
{{ if .Params.toc }}
&amp;lt;div class=&amp;quot;container-fluid docs&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;row flex-xl-nowrap&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;d-none d-xl-block col-xl-2 docs-toc&amp;quot;&amp;gt;
        &amp;lt;ul class=&amp;quot;nav toc-top&amp;quot;&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;back_to_top&amp;quot; class=&amp;quot;docs-toc-title&amp;quot;&amp;gt;{{ i18n &amp;quot;on_this_page&amp;quot; }}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
        {{ .TableOfContents }}
      &amp;lt;/div&amp;gt;
      &amp;lt;main class=&amp;quot;col-12 col-md-0 col-xl-10 py-md-3 pl-md-5 docs-content&amp;quot; role=&amp;quot;main&amp;quot;&amp;gt;
{{ end }}
        &amp;lt;article class=&amp;quot;article&amp;quot;&amp;gt;
            {{ partial &amp;quot;page_header&amp;quot; . }}
            &amp;lt;div class=&amp;quot;article-container&amp;quot;&amp;gt;
              &amp;lt;div class=&amp;quot;article-style&amp;quot;&amp;gt;
                {{ .Content }}
              &amp;lt;/div&amp;gt;
              {{ partial &amp;quot;page_footer&amp;quot; . }}
            &amp;lt;/div&amp;gt;
        &amp;lt;/article&amp;gt;
  {{ if .Params.toc }}
      &amp;lt;/main&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  {{ end }}
{{- end -}}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;step-2&#34;&gt;Step 2.&lt;/h3&gt;
&lt;p&gt;DONT USE &lt;code&gt;.Rmd&lt;/code&gt; , using &lt;code&gt;.Rmarkdown&lt;/code&gt; instead.&lt;/p&gt;
&lt;p&gt;















&lt;figure  &gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img src=&#34;https://tva1.sinaimg.cn/large/e6c9d24ely1h3q5rbwxnej20xb0u076m.jpg&#34; alt=&#34;截屏2022-06-30 12.26.58&#34; loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&#34;further-discussion&#34;&gt;Further discussion&lt;/h2&gt;
&lt;p&gt;Further discussion and issues is &lt;a href=&#34;https://github.com/mcanouil/mickael.canouil.fr/issues/7&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here (Add a Floating Table of Contents in Blogdown \\\\| R &amp;amp; MC)&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;more-application&#34;&gt;More Application&lt;/h2&gt;
&lt;h3 id=&#34;activate-the-toc&#34;&gt;Activate the TOC&lt;/h3&gt;
&lt;p&gt;In every post you make where you would like a Table of Contents, you will need to ensure that you add &lt;code&gt;toc: true&lt;/code&gt; in your front matter.&lt;/p&gt;
&lt;p&gt;We can also use this code &lt;code&gt;\{\{% toc %\}\}&lt;/code&gt; to show the table of content anyway in the post. For example,&lt;/p&gt;
&lt;details class=&#34;toc-inpage d-print-none  &#34; open&gt;
  &lt;summary class=&#34;font-weight-bold&#34;&gt;Table of Contents&lt;/summary&gt;
  &lt;nav id=&#34;TableOfContents&#34;&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&#34;#motivation&#34;&gt;Motivation&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&#34;#potential-approach&#34;&gt;Potential Approach&lt;/a&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href=&#34;#step-1&#34;&gt;Step 1&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&#34;#step-2&#34;&gt;Step 2.&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&#34;#further-discussion&#34;&gt;Further discussion&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&#34;#more-application&#34;&gt;More Application&lt;/a&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href=&#34;#activate-the-toc&#34;&gt;Activate the TOC&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&#34;#for-latex&#34;&gt;For LaTeX&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&#34;#summary&#34;&gt;Summary&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/nav&gt;
&lt;/details&gt;
&lt;h3 id=&#34;for-latex&#34;&gt;For LaTeX&lt;/h3&gt;
&lt;p&gt;For the $\LaTeX$, we have to use the shortcode, and put the latex code inside, check &lt;a href=&#34;https://wowchemy.com/docs/content/writing-markdown-latex/#math&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;

$$
\gamma_{n} = \frac{ \left | \left (\mathbf x_{n} - \mathbf x_{n-1} \right )^T \left [\nabla F (\mathbf x_{n}) - \nabla F (\mathbf x_{n-1}) \right ] \right |}{\left \|\nabla F(\mathbf{x}_{n}) - \nabla F(\mathbf{x}_{n-1}) \right \|^2}
$$

&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;需要floating TOC
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Step1 + Step2 设置好&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;.Rmarkdown&lt;/code&gt; , set &lt;code&gt;toc:true&lt;/code&gt; in the yaml of the post.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;.Rmarkdown&lt;/code&gt; 默认生成markdown，如果需要$\LaTeX$代码的话，必须使用shortcode&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;{{&amp;lt; math &amp;gt;}} &amp;hellip; {{&amp;lt; /math &amp;gt;}}&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;给它们包起来，这个是wowchemy academic theme要求的&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;需要TOC，在最上方就可以
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;.Rmd&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add this into the yaml part of the post&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;output&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;blogdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html_page&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;toc&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;LaTeX code works fine, NO Need to use shortcode.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;所以，如果不需要浮动的TOC的话，直接选&lt;code&gt;.Rmd&lt;/code&gt; 就好了，最方便简单也不会出什么问题。如果选择了&lt;code&gt;.Rmarkdown&lt;/code&gt; 的话，latex 需要shortcode，也可能出现其他的问题。&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>Tidy Evaluation in R</title>
      <link>https://chenxing.space/blog/tidy-evaulation-in-r/</link>
      <pubDate>Mon, 16 May 2022 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/tidy-evaulation-in-r/</guid>
      <description>
&lt;script src=&#34;https://chenxing.space/blog/tidy-evaulation-in-r/index.en_files/kePrint/kePrint.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/tidy-evaulation-in-r/index.en_files/lightable/lightable.css&#34; rel=&#34;stylesheet&#34; /&gt;

&lt;div id=&#34;TOC&#34;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#motivation&#34;&gt;&lt;span class=&#34;toc-section-number&#34;&gt;1&lt;/span&gt; Motivation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#quo-function-bang-bang&#34;&gt;&lt;span class=&#34;toc-section-number&#34;&gt;2&lt;/span&gt; &lt;code&gt;quo()&lt;/code&gt; function &amp;amp; “bang bang” &lt;code&gt;!!&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#enquo-function-bang-bang&#34;&gt;&lt;span class=&#34;toc-section-number&#34;&gt;3&lt;/span&gt; &lt;code&gt;enquo()&lt;/code&gt; function &amp;amp; “bang bang” &lt;code&gt;!!&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#the-curly-curly-shortcut&#34;&gt;&lt;span class=&#34;toc-section-number&#34;&gt;4&lt;/span&gt; The “Curly-Curly” Shortcut &lt;code&gt;{{}}&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#as_label-function-and-operator&#34;&gt;&lt;span class=&#34;toc-section-number&#34;&gt;5&lt;/span&gt; &lt;code&gt;as_label()&lt;/code&gt; function and &lt;code&gt;:=&lt;/code&gt; operator&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#用于在-summarize-或-mutate-中声明新变量&#34;&gt;&lt;span class=&#34;toc-section-number&#34;&gt;5.1&lt;/span&gt; &lt;code&gt;:=&lt;/code&gt; 用于在 &lt;code&gt;summarize&lt;/code&gt; 或 &lt;code&gt;mutate&lt;/code&gt; 中声明新变量&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#sysms-function-and&#34;&gt;&lt;span class=&#34;toc-section-number&#34;&gt;6&lt;/span&gt; &lt;code&gt;sysms()&lt;/code&gt; function and &lt;code&gt;!!!&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#summary&#34;&gt;&lt;span class=&#34;toc-section-number&#34;&gt;7&lt;/span&gt; Summary&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div id=&#34;motivation&#34; class=&#34;section level1&#34; number=&#34;1&#34;&gt;
&lt;h1&gt;&lt;span class=&#34;header-section-number&#34;&gt;1&lt;/span&gt; Motivation&lt;/h1&gt;
&lt;p&gt;为什么需要&lt;strong&gt;tidy evaluation&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;很多时候，我们需要建立一些wrapping
functions，这些函数是建立在dplyr或者ggplot2之上的，函数中的参数
&lt;code&gt;function(data, xvar, yvar, ...)&lt;/code&gt; 往往是&lt;code&gt;data&lt;/code&gt;
中的某个列。我们来举个例子吧，&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;library(zetaEDA)
enable_zeta_ggplot_theme()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The data is &lt;code&gt;diamonds&lt;/code&gt; data set,&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;dat &amp;lt;- diamonds %&amp;gt;% head(1000)

print_kbl(head(dat))&lt;/code&gt;&lt;/pre&gt;
&lt;table class=&#34;table table-striped&#34; style=&#34;width: auto !important; margin-left: auto; margin-right: auto;&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
carat
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
cut
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
color
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
clarity
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
depth
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
table
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
price
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
x
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
y
&lt;/th&gt;
&lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt;
z
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
0.23
&lt;/td&gt;
&lt;td&gt;
Ideal
&lt;/td&gt;
&lt;td&gt;
E
&lt;/td&gt;
&lt;td&gt;
SI2
&lt;/td&gt;
&lt;td&gt;
61.5
&lt;/td&gt;
&lt;td&gt;
55
&lt;/td&gt;
&lt;td&gt;
326
&lt;/td&gt;
&lt;td&gt;
3.95
&lt;/td&gt;
&lt;td&gt;
3.98
&lt;/td&gt;
&lt;td&gt;
2.43
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
0.21
&lt;/td&gt;
&lt;td&gt;
Premium
&lt;/td&gt;
&lt;td&gt;
E
&lt;/td&gt;
&lt;td&gt;
SI1
&lt;/td&gt;
&lt;td&gt;
59.8
&lt;/td&gt;
&lt;td&gt;
61
&lt;/td&gt;
&lt;td&gt;
326
&lt;/td&gt;
&lt;td&gt;
3.89
&lt;/td&gt;
&lt;td&gt;
3.84
&lt;/td&gt;
&lt;td&gt;
2.31
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
0.23
&lt;/td&gt;
&lt;td&gt;
Good
&lt;/td&gt;
&lt;td&gt;
E
&lt;/td&gt;
&lt;td&gt;
VS1
&lt;/td&gt;
&lt;td&gt;
56.9
&lt;/td&gt;
&lt;td&gt;
65
&lt;/td&gt;
&lt;td&gt;
327
&lt;/td&gt;
&lt;td&gt;
4.05
&lt;/td&gt;
&lt;td&gt;
4.07
&lt;/td&gt;
&lt;td&gt;
2.31
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
0.29
&lt;/td&gt;
&lt;td&gt;
Premium
&lt;/td&gt;
&lt;td&gt;
I
&lt;/td&gt;
&lt;td&gt;
VS2
&lt;/td&gt;
&lt;td&gt;
62.4
&lt;/td&gt;
&lt;td&gt;
58
&lt;/td&gt;
&lt;td&gt;
334
&lt;/td&gt;
&lt;td&gt;
4.20
&lt;/td&gt;
&lt;td&gt;
4.23
&lt;/td&gt;
&lt;td&gt;
2.63
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
0.31
&lt;/td&gt;
&lt;td&gt;
Good
&lt;/td&gt;
&lt;td&gt;
J
&lt;/td&gt;
&lt;td&gt;
SI2
&lt;/td&gt;
&lt;td&gt;
63.3
&lt;/td&gt;
&lt;td&gt;
58
&lt;/td&gt;
&lt;td&gt;
335
&lt;/td&gt;
&lt;td&gt;
4.34
&lt;/td&gt;
&lt;td&gt;
4.35
&lt;/td&gt;
&lt;td&gt;
2.75
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
0.24
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
Very Good
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
J
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
VVS2
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
62.8
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
57
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
336
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
3.94
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
3.96
&lt;/td&gt;
&lt;td style=&#34;border-bottom-color: white;&#34;&gt;
2.48
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The common task is to compute group mean,&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;dat %&amp;gt;%
  group_by(color) %&amp;gt;%
  summarise(mean_price = mean(price, na.rm = TRUE))&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 7 × 2
##   color mean_price
##   &amp;lt;ord&amp;gt;      &amp;lt;dbl&amp;gt;
## 1 D          2594.
## 2 E          2543.
## 3 F          2692.
## 4 G          2576.
## 5 H          2308.
## 6 I          1948.
## 7 J          1990.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;How to build a function to compute the group mean?&lt;/p&gt;
&lt;p&gt;Maybe you would like to try this:&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# define the function
cal_group_mean &amp;lt;- function(data, group_var, mean_var) {
  data %&amp;gt;%
    group_by(group_var) %&amp;gt;%
    summarize(mean = mean(mean_var, na.rm = TRUE))
}

# first try
cal_group_mean(dat, group_var = color, mean_var = price)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Error in `group_by()`:
## ! Must group by variables found in `.data`.
## ✖ Column `group_var` is not found.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;NOT Work! OK, let’s try this,&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# second try
cal_group_mean(dat, group_var = &amp;quot;color&amp;quot;, mean_var = &amp;quot;price&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Error in `group_by()`:
## ! Must group by variables found in `.data`.
## ✖ Column `group_var` is not found.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In order to make it work, what you need is the &lt;strong&gt;Tidy Evaluation&lt;/strong&gt;!&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# define the function again, use tidy evaluation
cal_group_mean &amp;lt;- function(data, group_var, mean_var) {
  group_var &amp;lt;- enquo(group_var)
  mean_var &amp;lt;- enquo(mean_var)

  data %&amp;gt;%
    group_by(!!group_var) %&amp;gt;%
    summarize(mean = mean(!!mean_var, na.rm = TRUE))
}

# the correct result
cal_group_mean(dat, group_var = color, mean_var = price)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 7 × 2
##   color  mean
##   &amp;lt;ord&amp;gt; &amp;lt;dbl&amp;gt;
## 1 D     2594.
## 2 E     2543.
## 3 F     2692.
## 4 G     2576.
## 5 H     2308.
## 6 I     1948.
## 7 J     1990.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;quo-function-bang-bang&#34; class=&#34;section level1&#34; number=&#34;2&#34;&gt;
&lt;h1&gt;&lt;span class=&#34;header-section-number&#34;&gt;2&lt;/span&gt; &lt;code&gt;quo()&lt;/code&gt; function &amp;amp; “bang bang” &lt;code&gt;!!&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;In the example below we use the &lt;code&gt;quo&lt;/code&gt; function and the “bang-bang” &lt;code&gt;!!&lt;/code&gt;
operator to set &lt;code&gt;color&lt;/code&gt; as our group by variable.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The “&lt;code&gt;quo&lt;/code&gt;” function allows us to store the variable name in our
“group_var” variable&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“&lt;code&gt;!!&lt;/code&gt;” extracts the stored variable name.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# store the variable name in &amp;#39;group_var&amp;#39;
group_var &amp;lt;- quo(color)

class(group_var)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] &amp;quot;quosure&amp;quot; &amp;quot;formula&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;dat %&amp;gt;%
  # extract the stored variable name using &amp;#39;bang bang&amp;#39;
  group_by(!!group_var) %&amp;gt;%
  summarize(mean = mean(price, na.rm = TRUE))&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 7 × 2
##   color  mean
##   &amp;lt;ord&amp;gt; &amp;lt;dbl&amp;gt;
## 1 D     2594.
## 2 E     2543.
## 3 F     2692.
## 4 G     2576.
## 5 H     2308.
## 6 I     1948.
## 7 J     1990.&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：上面的代码并没有写在函数的内部，如果我们需要使用tidy
evaluation的方式来写函数的话，不要用&lt;code&gt;quo&lt;/code&gt; ，需要使用&lt;code&gt;enquo&lt;/code&gt; !&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div id=&#34;enquo-function-bang-bang&#34; class=&#34;section level1&#34; number=&#34;3&#34;&gt;
&lt;h1&gt;&lt;span class=&#34;header-section-number&#34;&gt;3&lt;/span&gt; &lt;code&gt;enquo()&lt;/code&gt; function &amp;amp; “bang bang” &lt;code&gt;!!&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;To use tidy evaluation in a function, we will still use the “&lt;code&gt;!!&lt;/code&gt;”
operator as we did above, &lt;u&gt;but instead of “&lt;code&gt;quo&lt;/code&gt;” we will use the
&lt;code&gt;enquo&lt;/code&gt; function&lt;/u&gt;.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;cal_group_stats &amp;lt;- function(data, group_var, target_var) {
  # store the variable name using `enquo`
  group_var &amp;lt;- enquo(group_var)
  target_var &amp;lt;- enquo(target_var)

  data %&amp;gt;%
    # extract the stored variable using bang-bang !!
    group_by(!!group_var) %&amp;gt;%
    summarize(across(!!target_var, list(
      mean = ~ mean(.x, na.rm = TRUE),
      sd = ~ sd(.x, na.rm = TRUE)
    )))
}

# try
cal_group_stats(dat, group_var = clarity, target_var = price)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 8 × 3
##   clarity price_mean price_sd
##   &amp;lt;ord&amp;gt;        &amp;lt;dbl&amp;gt;    &amp;lt;dbl&amp;gt;
## 1 I1           2674.    618. 
## 2 SI2          2489.    840. 
## 3 SI1          2440.    873. 
## 4 VS2          2616.    669. 
## 5 VS1          2383.    928. 
## 6 VVS2         2497.    828. 
## 7 VVS1         2159.   1051. 
## 8 IF           2829.     38.0&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;cal_group_stats(dat, group_var = NULL, target_var = price)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 1 × 2
##   price_mean price_sd
##        &amp;lt;dbl&amp;gt;    &amp;lt;dbl&amp;gt;
## 1      2477.     840.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;the-curly-curly-shortcut&#34; class=&#34;section level1&#34; number=&#34;4&#34;&gt;
&lt;h1&gt;&lt;span class=&#34;header-section-number&#34;&gt;4&lt;/span&gt; The “Curly-Curly” Shortcut &lt;code&gt;{{}}&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;The “curly-curly” &lt;a href=&#34;https://www.tidyverse.org/blog/2019/06/rlang-0-4-0/&#34;&gt;{{
}}&lt;/a&gt; operator
directly extracts a stored variable name from “target_var” in the
example below. In the prior example we needed both “&lt;code&gt;enquo&lt;/code&gt;” and “&lt;code&gt;!!&lt;/code&gt;”
to evaluate a variable like this so the “&lt;strong&gt;curly-curly&lt;/strong&gt;” operator is a
&lt;strong&gt;convenient shortcut&lt;/strong&gt;.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;cal_group_stats2 &amp;lt;- function(data, group_var, target_var) {
  # store the variable name using `enquo`
  group_var &amp;lt;- enquo(group_var)

  data %&amp;gt;%
    group_by(!!group_var) %&amp;gt;%
    # using `{{}}` as shortcut
    summarize(across({{ target_var }}, list(
      mean = ~ mean(.x, na.rm = TRUE),
      sd = ~ sd(.x, na.rm = TRUE)
    )))
}

# check
cal_group_stats2(dat, group_var = clarity, target_var = price)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 8 × 3
##   clarity price_mean price_sd
##   &amp;lt;ord&amp;gt;        &amp;lt;dbl&amp;gt;    &amp;lt;dbl&amp;gt;
## 1 I1           2674.    618. 
## 2 SI2          2489.    840. 
## 3 SI1          2440.    873. 
## 4 VS2          2616.    669. 
## 5 VS1          2383.    928. 
## 6 VVS2         2497.    828. 
## 7 VVS1         2159.   1051. 
## 8 IF           2829.     38.0&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;identical(
  cal_group_stats(dat, group_var = clarity, target_var = price),
  cal_group_stats2(dat, group_var = clarity, target_var = price)
)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] TRUE&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt;: &lt;code&gt;{{}}&lt;/code&gt; is the shortcut of &lt;code&gt;enquo()&lt;/code&gt; and &lt;code&gt;!!&lt;/code&gt; .&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div id=&#34;as_label-function-and-operator&#34; class=&#34;section level1&#34; number=&#34;5&#34;&gt;
&lt;h1&gt;&lt;span class=&#34;header-section-number&#34;&gt;5&lt;/span&gt; &lt;code&gt;as_label()&lt;/code&gt; function and &lt;code&gt;:=&lt;/code&gt; operator&lt;/h1&gt;
&lt;p&gt;How can I use the variable name? The answer is &lt;code&gt;as_label()&lt;/code&gt; function.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;print_class &amp;lt;- function(data, myvar) {
  myvar1 &amp;lt;- enquo(myvar)
  message(&amp;quot;Understand the class of `enquo(myvar)`:&amp;quot;)
  print(class(myvar1))

  myvar2 &amp;lt;- as_label(enquo(myvar))
  message(&amp;quot;Understand the class of `as_label(enquo(myvar))`:&amp;quot;)
  print(class(myvar2))
}

# check
print_class(dat, myvar = color)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Understand the class of `enquo(myvar)`:&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] &amp;quot;quosure&amp;quot; &amp;quot;formula&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Understand the class of `as_label(enquo(myvar))`:&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] &amp;quot;character&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We will illustrate the &lt;code&gt;as_label()&lt;/code&gt; using the below example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The &lt;a href=&#34;https://rlang.r-lib.org/reference/as_label.html&#34;&gt;as_label&lt;/a&gt; function
extracts the string value of the &lt;code&gt;target_var&lt;/code&gt; variable (&lt;code&gt;price&lt;/code&gt; in
this case). We use this to set the value of the &lt;code&gt;target_var&lt;/code&gt; column.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you want to extract the string variable name with the &lt;code&gt;as_label&lt;/code&gt;
function, you will still need to use &lt;code&gt;enquo&lt;/code&gt; and &lt;code&gt;!!&lt;/code&gt;. You
&lt;strong&gt;CANNOT&lt;/strong&gt; use the &lt;code&gt;{{}}&lt;/code&gt; shortcut!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;cal_group_stats3 &amp;lt;- function(data, group_var, target_var) {
  # store the variable name using `enquo`
  group_var &amp;lt;- enquo(group_var)
  target_var &amp;lt;- enquo(target_var)

  data %&amp;gt;%
    group_by(!!group_var) %&amp;gt;%
    summarize(across(!!target_var, list(
      mean = ~ mean(.x, na.rm = TRUE),
      sd = ~ sd(.x, na.rm = TRUE)
    ))) %&amp;gt;%
    mutate(varName = as_label(target_var))
}

# check
cal_group_stats3(dat, group_var = color, target_var = price)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 7 × 4
##   color price_mean price_sd varName
##   &amp;lt;ord&amp;gt;      &amp;lt;dbl&amp;gt;    &amp;lt;dbl&amp;gt; &amp;lt;chr&amp;gt;  
## 1 D          2594.     712. price  
## 2 E          2543.     769. price  
## 3 F          2692.     553. price  
## 4 G          2576.     715. price  
## 5 H          2308.     974. price  
## 6 I          1948.    1141. price  
## 7 J          1990.    1181. price&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Let’s see another example: using the variable name in ggplot title.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;plotxy &amp;lt;- function(data, xvar, yvar) {
  xvar &amp;lt;- enquo(xvar)
  yvar &amp;lt;- enquo(yvar)
  data_name &amp;lt;- as_label(enquo(data))

  data %&amp;gt;%
    ggplot(aes(x = !!xvar, y = !!yvar)) +
    geom_point() +
    geom_smooth() +
    # using variable name in the title
    ggtitle(str_c(
      as_label(yvar), &amp;quot; vs. &amp;quot;, as_label(xvar),
      &amp;quot; in &amp;quot;, data_name, &amp;quot; data&amp;quot;
    ))
}

# check
plotxy(iris, xvar = Sepal.Length, yvar = Sepal.Width)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://chenxing.space/blog/tidy-evaulation-in-r/index.en_files/figure-html/unnamed-chunk-11-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt;: If you need to use/extract the variable name as a string,
please use &lt;code&gt;enquo()&lt;/code&gt; and &lt;code&gt;as_label()&lt;/code&gt; functions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div id=&#34;用于在-summarize-或-mutate-中声明新变量&#34; class=&#34;section level2&#34; number=&#34;5.1&#34;&gt;
&lt;h2&gt;&lt;span class=&#34;header-section-number&#34;&gt;5.1&lt;/span&gt; &lt;code&gt;:=&lt;/code&gt; 用于在 &lt;code&gt;summarize&lt;/code&gt; 或 &lt;code&gt;mutate&lt;/code&gt; 中声明新变量&lt;/h2&gt;
&lt;p&gt;In the following example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The “walrus operator” &lt;code&gt;:=&lt;/code&gt; is used to create a column named after
the variable name stored in the &lt;code&gt;target_var&lt;/code&gt; argument (“price” in
the example).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;:=&lt;/code&gt; allows you to use &lt;strong&gt;strings&lt;/strong&gt; and &lt;strong&gt;evaluated variables&lt;/strong&gt;
(such as &lt;code&gt;target_name&lt;/code&gt; and &lt;code&gt;target_var&lt;/code&gt; in our example) on the left
hand side of an assignment operation (where there would normally be
a “=” operator) in functions such as “mutate” and “summarize”.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;cal_group_stats4 &amp;lt;- function(data, group_var, target_var) {
  target_name &amp;lt;- as_label(enquo(target_var))

  data %&amp;gt;%
    group_by({{ group_var }}) %&amp;gt;%
    summarize(
      # use := to declare new column
      !!paste0(&amp;quot;mean_&amp;quot;, target_name) := mean({{ target_var }}),
      !!paste0(&amp;quot;sd_&amp;quot;, target_name) := sd({{ target_var }})
    )
}

# check
cal_group_stats4(dat, group_var = color, target_var = price)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 7 × 3
##   color mean_price sd_price
##   &amp;lt;ord&amp;gt;      &amp;lt;dbl&amp;gt;    &amp;lt;dbl&amp;gt;
## 1 D          2594.     712.
## 2 E          2543.     769.
## 3 F          2692.     553.
## 4 G          2576.     715.
## 5 H          2308.     974.
## 6 I          1948.    1141.
## 7 J          1990.    1181.&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt;: 在 &lt;code&gt;summarize&lt;/code&gt; 或者 &lt;code&gt;mutate&lt;/code&gt;
函数里声明新变量时，如果等号到左边包含 &lt;code&gt;as_label(enquo(var))&lt;/code&gt;
，需要使用 &lt;code&gt;:=&lt;/code&gt; ，而非传统的🟰&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;sysms-function-and&#34; class=&#34;section level1&#34; number=&#34;6&#34;&gt;
&lt;h1&gt;&lt;span class=&#34;header-section-number&#34;&gt;6&lt;/span&gt; &lt;code&gt;sysms()&lt;/code&gt; function and &lt;code&gt;!!!&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;syms&lt;/code&gt; function and the &lt;code&gt;!!!&lt;/code&gt; operator are &lt;strong&gt;used for passing a list
of variables as a function argument&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In prior examples &lt;code&gt;!!&lt;/code&gt; was used to evaluate a &lt;em&gt;single&lt;/em&gt; group-by
variable. We now use &lt;code&gt;!!!&lt;/code&gt; to evaluate a &lt;em&gt;list&lt;/em&gt; of group-by variables.
One quirk is that to use the &lt;code&gt;syms&lt;/code&gt; function &lt;strong&gt;we will need to pass the
variable names in quotes&lt;/strong&gt;.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;cal_group_stats5 &amp;lt;- function(data, group_vars, target_var) {
  group_vars &amp;lt;- syms(group_vars)
  target_name &amp;lt;- as_label(enquo(target_var))

  data %&amp;gt;%
    group_by(!!!group_vars) %&amp;gt;%
    summarize(
      !!paste0(&amp;quot;minVal_&amp;quot;, target_name) := min({{ target_var }}),
      !!paste0(&amp;quot;maxVal_&amp;quot;, target_name) := max({{ target_var }})
    )
}

# check
# single group-by variable
cal_group_stats5(
  data = dat,
  group_vars = &amp;quot;color&amp;quot;,
  target_var = price
)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 7 × 3
##   color minVal_price maxVal_price
##   &amp;lt;ord&amp;gt;        &amp;lt;int&amp;gt;        &amp;lt;int&amp;gt;
## 1 D              357         2897
## 2 E              326         2897
## 3 F              342         2897
## 4 G              354         2896
## 5 H              337         2893
## 6 I              334         2896
## 7 J              335         2898&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# a list of group-by variables
cal_group_stats5(
  data = dat,
  group_vars = c(&amp;quot;color&amp;quot;, &amp;quot;clarity&amp;quot;),
  target_var = price
)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 53 × 4
## # Groups:   color [7]
##    color clarity minVal_price maxVal_price
##    &amp;lt;ord&amp;gt; &amp;lt;ord&amp;gt;          &amp;lt;int&amp;gt;        &amp;lt;int&amp;gt;
##  1 D     I1              2869         2869
##  2 D     SI2             2762         2896
##  3 D     SI1              552         2896
##  4 D     VS2              357         2897
##  5 D     VS1              402         2861
##  6 D     VVS2             554         2897
##  7 D     VVS1             553         2866
##  8 E     I1               345         2862
##  9 E     SI2              326         2896
## 10 E     SI1              326         2897
## # … with 43 more rows&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# a NULL group-by variable
cal_group_stats5(
  data = dat,
  group_vars = NULL,
  target_var = price
)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 1 × 2
##   minVal_price maxVal_price
##          &amp;lt;int&amp;gt;        &amp;lt;int&amp;gt;
## 1          326         2898&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt;: 如果有多个group-by variables，那么需要使用 &lt;code&gt;syms&lt;/code&gt; 和 &lt;code&gt;!!!&lt;/code&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div id=&#34;summary&#34; class=&#34;section level1&#34; number=&#34;7&#34;&gt;
&lt;h1&gt;&lt;span class=&#34;header-section-number&#34;&gt;7&lt;/span&gt; Summary&lt;/h1&gt;
&lt;p&gt;The &lt;em&gt;variable&lt;/em&gt; I am referring here is the variable in the function
argument:&lt;/p&gt;
&lt;ol style=&#34;list-style-type: decimal&#34;&gt;
&lt;li&gt;&lt;code&gt;{{}}&lt;/code&gt; operator is a shortcut for using &lt;code&gt;enquo()&lt;/code&gt; and &lt;code&gt;!!&lt;/code&gt; .&lt;/li&gt;
&lt;li&gt;If you need to use the &lt;em&gt;variable&lt;/em&gt; name string, eg. use it in the
ggplot title, please use &lt;code&gt;enquo()&lt;/code&gt; and &lt;code&gt;as_label&lt;/code&gt; .&lt;/li&gt;
&lt;li&gt;If you need to declare the new &lt;em&gt;variable&lt;/em&gt; in &lt;code&gt;summarize&lt;/code&gt; / &lt;code&gt;mutate&lt;/code&gt;
, DO NOT use &lt;code&gt;=&lt;/code&gt; , please use &lt;code&gt;:=&lt;/code&gt; instead.&lt;/li&gt;
&lt;li&gt;If you have multiple group-by &lt;em&gt;variables&lt;/em&gt;, the tidy evaluation
requires to use &lt;code&gt;syms()&lt;/code&gt; and &lt;code&gt;!!!&lt;/code&gt; operator.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Translate Column Names back and forth</title>
      <link>https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/</link>
      <pubDate>Fri, 11 Mar 2022 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/</guid>
      <description>&lt;script src=&#34;https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/index_files/kePrint/kePrint.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/index_files/lightable/lightable.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/index_files/kePrint/kePrint.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/index_files/lightable/lightable.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/index_files/kePrint/kePrint.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/index_files/lightable/lightable.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/index_files/kePrint/kePrint.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/2022-03-11-translate-column-names-back-and-forth/index_files/lightable/lightable.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;p&gt;在处理中文数据中，第一步就是翻译列名到英语。当我们分析完数据后，可能还需要将结果与之前的中文列名对应回去，这样比较麻烦。今天来总结一个小技巧。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# loading package&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;zetaEDA&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# raw data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;tibble&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;姓名 &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;李四&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; 年龄 &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# check&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;print_kbl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table class=&#34;table table-striped&#34; style=&#34;width: auto !important; margin-left: auto; margin-right: auto;&#34;&gt;
 &lt;thead&gt;
  &lt;tr&gt;
   &lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt; 姓名 &lt;/th&gt;
   &lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt; 年龄 &lt;/th&gt;
  &lt;/tr&gt;
 &lt;/thead&gt;
&lt;tbody&gt;
  &lt;tr&gt;
   &lt;td&gt; 张三 &lt;/td&gt;
   &lt;td&gt; 20 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&#34;border-bottom-color: white;&#34;&gt; 李四 &lt;/td&gt;
   &lt;td style=&#34;border-bottom-color: white;&#34;&gt; 30 &lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;首先，建立一个数据集储存中英文对照表。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# build a column name translation data set&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;column_names_translation&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;tibble&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;姓名&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;&amp;#34;年龄&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;age&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;pivot_longer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;names_to&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;chinese&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;values_to&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;english&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# check&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;column_names_translation&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;print_kbl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table class=&#34;table table-striped&#34; style=&#34;width: auto !important; margin-left: auto; margin-right: auto;&#34;&gt;
 &lt;thead&gt;
  &lt;tr&gt;
   &lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt; chinese &lt;/th&gt;
   &lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt; english &lt;/th&gt;
  &lt;/tr&gt;
 &lt;/thead&gt;
&lt;tbody&gt;
  &lt;tr&gt;
   &lt;td&gt; 姓名 &lt;/td&gt;
   &lt;td&gt; name &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&#34;border-bottom-color: white;&#34;&gt; 年龄 &lt;/td&gt;
   &lt;td style=&#34;border-bottom-color: white;&#34;&gt; age &lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;接下来就是trick啦：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;using &lt;code&gt;deframe()&lt;/code&gt;, make a named vector&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;using &lt;code&gt;rename(!!! your_variable)&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# translate to English&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tmp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;column_names_translation&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;english&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;chinese&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;deframe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tmp&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##   name    age 
## &amp;#34;姓名&amp;#34; &amp;#34;年龄&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# `!!!` in rename is important&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;rename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!!!&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tmp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;print_kbl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table class=&#34;table table-striped&#34; style=&#34;width: auto !important; margin-left: auto; margin-right: auto;&#34;&gt;
 &lt;thead&gt;
  &lt;tr&gt;
   &lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt; name &lt;/th&gt;
   &lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt; age &lt;/th&gt;
  &lt;/tr&gt;
 &lt;/thead&gt;
&lt;tbody&gt;
  &lt;tr&gt;
   &lt;td&gt; 张三 &lt;/td&gt;
   &lt;td&gt; 20 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&#34;border-bottom-color: white;&#34;&gt; 李四 &lt;/td&gt;
   &lt;td style=&#34;border-bottom-color: white;&#34;&gt; 30 &lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# translate back to Chinese&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tmp2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;column_names_translation&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chinese&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;english&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;deframe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;rename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!!!&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tmp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;rename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!!!&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tmp2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;print_kbl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table class=&#34;table table-striped&#34; style=&#34;width: auto !important; margin-left: auto; margin-right: auto;&#34;&gt;
 &lt;thead&gt;
  &lt;tr&gt;
   &lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt; 姓名 &lt;/th&gt;
   &lt;th style=&#34;border-top-color: white; border-bottom: 1px solid;&#34;&gt; 年龄 &lt;/th&gt;
  &lt;/tr&gt;
 &lt;/thead&gt;
&lt;tbody&gt;
  &lt;tr&gt;
   &lt;td&gt; 张三 &lt;/td&gt;
   &lt;td&gt; 20 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td style=&#34;border-bottom-color: white;&#34;&gt; 李四 &lt;/td&gt;
   &lt;td style=&#34;border-bottom-color: white;&#34;&gt; 30 &lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
    </item>
    
    <item>
      <title>R Plotly Tutorial</title>
      <link>https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/</link>
      <pubDate>Fri, 07 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/</guid>
      <description>&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/htmlwidgets/htmlwidgets.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/plotly-binding/plotly.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/typedarray/typedarray.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/jquery/jquery.min.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/crosstalk/css/crosstalk.min.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/crosstalk/js/crosstalk.min.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/plotly-htmlwidgets-css/plotly-htmlwidgets.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/plotly-main/plotly-latest.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/htmlwidgets/htmlwidgets.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/plotly-binding/plotly.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/typedarray/typedarray.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/jquery/jquery.min.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/crosstalk/css/crosstalk.min.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/crosstalk/js/crosstalk.min.js&#34;&gt;&lt;/script&gt;
&lt;link href=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/plotly-htmlwidgets-css/plotly-htmlwidgets.css&#34; rel=&#34;stylesheet&#34; /&gt;
&lt;script src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/plotly-main/plotly-latest.min.js&#34;&gt;&lt;/script&gt;
&lt;h1 id=&#34;loading-package&#34;&gt;Loading Package&lt;/h1&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tidyverse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;plotly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;zetaEDA&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;enable_zeta_ggplot_theme&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;ggplotly&#34;&gt;ggplotly&lt;/h1&gt;
&lt;p&gt;If you are very familiar with &lt;strong&gt;ggplot&lt;/strong&gt;, then you can easily convert the &lt;code&gt;ggplot&lt;/code&gt; object to &lt;code&gt;plotly&lt;/code&gt; object, which is able to interactively communicate the plots with the end-user.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;set.seed&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;123&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;tibble&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;date&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;seq.Date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;as.Date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;2010-01-01&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;length.out&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;48&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;month&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;actual&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;rnorm&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;48&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mean&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sd&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;fc&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;rnorm&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;48&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mean&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;9.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sd&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;2.4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;mutate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;diff&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;actual&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;RMSE&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;sqrt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;mean&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;diff&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;^2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;MAE&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;mean&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;abs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;diff&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Take a look at our data:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;knitr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;kable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left;&#34;&gt;
date
&lt;/th&gt;
&lt;th style=&#34;text-align:right;&#34;&gt;
actual
&lt;/th&gt;
&lt;th style=&#34;text-align:right;&#34;&gt;
fc
&lt;/th&gt;
&lt;th style=&#34;text-align:right;&#34;&gt;
diff
&lt;/th&gt;
&lt;th style=&#34;text-align:right;&#34;&gt;
RMSE
&lt;/th&gt;
&lt;th style=&#34;text-align:right;&#34;&gt;
MAE
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left;&#34;&gt;
2010-01-01
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
8.318573
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
11.671916
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
-3.3533432
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
3.462068
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
2.836012
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left;&#34;&gt;
2010-02-01
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
9.309468
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
9.599914
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
-0.2904467
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
3.462068
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
2.836012
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left;&#34;&gt;
2010-03-01
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
14.676125
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
10.407964
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
4.2681605
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
3.462068
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
2.836012
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left;&#34;&gt;
2010-04-01
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
10.211525
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
9.731488
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
0.4800374
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
3.462068
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
2.836012
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left;&#34;&gt;
2010-05-01
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
10.387863
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
9.697111
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
0.6907523
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
3.462068
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
2.836012
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left;&#34;&gt;
2010-06-01
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
15.145195
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
13.084646
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
2.0605495
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
3.462068
&lt;/td&gt;
&lt;td style=&#34;text-align:right;&#34;&gt;
2.836012
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;ggplot-code&#34;&gt;ggplot code&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;plt_dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;actual&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;pivot_longer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cols&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;names_to&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;values_to&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;mutate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;factor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;levels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;actual&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;fc&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;date&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;as.Date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;2012-06-01&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;plt_dat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;ggplot&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;aes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fill&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;geom_col&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;position&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;dodge&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;alpha&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;scale_fill_manual&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;values&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;steelblue&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;orange&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;scale_x_date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;date_breaks&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;6 month&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;date_labels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;%Y-%m&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;labs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;month&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Compare Actual with Forecast Value&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;img src=&#34;https://chenxing.space/blog/2022-01-07-r-plotly-tutorial/index_files/figure-html/ggplot-1.png&#34; width=&#34;672&#34; /&gt;
&lt;h2 id=&#34;convert-to-plotly-object-using-ggplotly&#34;&gt;Convert to plotly object using &lt;code&gt;ggplotly&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;When you have a ggplot object, you can apply &lt;code&gt;ggplotly&lt;/code&gt; function directly to get the result.&lt;/p&gt;
&lt;p&gt;Note that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;This approach is the easiest way to do conversion!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;However, this approach lacks some customization for plotly object.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ?ggplotly&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;ggplotly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div id=&#34;htmlwidget-1&#34; style=&#34;width:672px;height:480px;&#34; class=&#34;plotly html-widget&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;application/json&#34; data-for=&#34;htmlwidget-1&#34;&gt;{&#34;x&#34;:{&#34;data&#34;:[{&#34;orientation&#34;:&#34;v&#34;,&#34;width&#34;:[12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985],&#34;base&#34;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&#34;x&#34;:[14603.7,14634.7,14662.7,14693.7,14723.7,14754.7,14784.7,14815.7,14846.7,14876.7,14907.7,14937.7,14968.7,14999.7,15027.7,15058.7,15088.7,15119.7,15149.7,15180.7,15211.7,15241.7,15272.7,15302.7,15333.7,15364.7,15393.7,15424.7,15454.7,15485.7],&#34;y&#34;:[8.31857306034336,9.30946753155016,14.6761249424474,10.2115251742737,10.3878632054828,15.1451949606498,11.3827486179676,6.2048162961804,7.93944144431942,8.66301408970013,13.6722453923184,11.0794414811721,11.2023143517822,10.3320481478354,8.33247659573778,15.3607394104092,11.4935514346877,4.10014853011109,12.1040677046911,8.5816257768162,6.79652888203946,9.34607525602511,6.92198665507828,7.81332631212658,8.12488219645223,4.93992006777276,12.5133611334836,10.4601193535095,6.58558918896416,13.7614447632098],&#34;text&#34;:[&#34;date: 2010-01-01&lt;br /&gt;value:  8.318573&lt;br /&gt;type: actual&#34;,&#34;date: 2010-02-01&lt;br /&gt;value:  9.309468&lt;br /&gt;type: actual&#34;,&#34;date: 2010-03-01&lt;br /&gt;value: 14.676125&lt;br /&gt;type: actual&#34;,&#34;date: 2010-04-01&lt;br /&gt;value: 10.211525&lt;br /&gt;type: actual&#34;,&#34;date: 2010-05-01&lt;br /&gt;value: 10.387863&lt;br /&gt;type: actual&#34;,&#34;date: 2010-06-01&lt;br /&gt;value: 15.145195&lt;br /&gt;type: actual&#34;,&#34;date: 2010-07-01&lt;br /&gt;value: 11.382749&lt;br /&gt;type: actual&#34;,&#34;date: 2010-08-01&lt;br /&gt;value:  6.204816&lt;br /&gt;type: actual&#34;,&#34;date: 2010-09-01&lt;br /&gt;value:  7.939441&lt;br /&gt;type: actual&#34;,&#34;date: 2010-10-01&lt;br /&gt;value:  8.663014&lt;br /&gt;type: actual&#34;,&#34;date: 2010-11-01&lt;br /&gt;value: 13.672245&lt;br /&gt;type: actual&#34;,&#34;date: 2010-12-01&lt;br /&gt;value: 11.079441&lt;br /&gt;type: actual&#34;,&#34;date: 2011-01-01&lt;br /&gt;value: 11.202314&lt;br /&gt;type: actual&#34;,&#34;date: 2011-02-01&lt;br /&gt;value: 10.332048&lt;br /&gt;type: actual&#34;,&#34;date: 2011-03-01&lt;br /&gt;value:  8.332477&lt;br /&gt;type: actual&#34;,&#34;date: 2011-04-01&lt;br /&gt;value: 15.360739&lt;br /&gt;type: actual&#34;,&#34;date: 2011-05-01&lt;br /&gt;value: 11.493551&lt;br /&gt;type: actual&#34;,&#34;date: 2011-06-01&lt;br /&gt;value:  4.100149&lt;br /&gt;type: actual&#34;,&#34;date: 2011-07-01&lt;br /&gt;value: 12.104068&lt;br /&gt;type: actual&#34;,&#34;date: 2011-08-01&lt;br /&gt;value:  8.581626&lt;br /&gt;type: actual&#34;,&#34;date: 2011-09-01&lt;br /&gt;value:  6.796529&lt;br /&gt;type: actual&#34;,&#34;date: 2011-10-01&lt;br /&gt;value:  9.346075&lt;br /&gt;type: actual&#34;,&#34;date: 2011-11-01&lt;br /&gt;value:  6.921987&lt;br /&gt;type: actual&#34;,&#34;date: 2011-12-01&lt;br /&gt;value:  7.813326&lt;br /&gt;type: actual&#34;,&#34;date: 2012-01-01&lt;br /&gt;value:  8.124882&lt;br /&gt;type: actual&#34;,&#34;date: 2012-02-01&lt;br /&gt;value:  4.939920&lt;br /&gt;type: actual&#34;,&#34;date: 2012-03-01&lt;br /&gt;value: 12.513361&lt;br /&gt;type: actual&#34;,&#34;date: 2012-04-01&lt;br /&gt;value: 10.460119&lt;br /&gt;type: actual&#34;,&#34;date: 2012-05-01&lt;br /&gt;value:  6.585589&lt;br /&gt;type: actual&#34;,&#34;date: 2012-06-01&lt;br /&gt;value: 13.761445&lt;br /&gt;type: actual&#34;],&#34;type&#34;:&#34;bar&#34;,&#34;textposition&#34;:&#34;none&#34;,&#34;marker&#34;:{&#34;autocolorscale&#34;:false,&#34;color&#34;:&#34;rgba(70,130,180,0.8)&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;transparent&#34;}},&#34;name&#34;:&#34;actual&#34;,&#34;legendgroup&#34;:&#34;actual&#34;,&#34;showlegend&#34;:true,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;text&#34;,&#34;frame&#34;:null},{&#34;orientation&#34;:&#34;v&#34;,&#34;width&#34;:[12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985,12.5999999999985],&#34;base&#34;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&#34;x&#34;:[14616.3,14647.3,14675.3,14706.3,14736.3,14767.3,14797.3,14828.3,14859.3,14889.3,14920.3,14950.3,14981.3,15012.3,15040.3,15071.3,15101.3,15132.3,15162.3,15193.3,15224.3,15254.3,15285.3,15315.3,15346.3,15377.3,15406.3,15437.3,15467.3,15498.3],&#34;y&#34;:[11.6719162840072,9.59991424046761,10.4079644335874,9.73148778716311,9.69711090250084,13.0846454816347,9.25814963441776,13.4395294506309,6.08299326984747,11.2030729991266,10.0972501852271,10.3182597649855,10.7111347586237,8.59442371253768,9.00030227919339,7.35541908054299,7.22770105645861,10.5284687393702,10.8757034687106,9.92721014415321,12.0134419229114,14.7202032455051,8.62152520146432,4.25799469846205,12.2137724587094,8.09791816980226,8.14877932047834,12.2613712872721,9.11654478307758,6.87027749058912],&#34;text&#34;:[&#34;date: 2010-01-01&lt;br /&gt;value: 11.671916&lt;br /&gt;type: fc&#34;,&#34;date: 2010-02-01&lt;br /&gt;value:  9.599914&lt;br /&gt;type: fc&#34;,&#34;date: 2010-03-01&lt;br /&gt;value: 10.407964&lt;br /&gt;type: fc&#34;,&#34;date: 2010-04-01&lt;br /&gt;value:  9.731488&lt;br /&gt;type: fc&#34;,&#34;date: 2010-05-01&lt;br /&gt;value:  9.697111&lt;br /&gt;type: fc&#34;,&#34;date: 2010-06-01&lt;br /&gt;value: 13.084645&lt;br /&gt;type: fc&#34;,&#34;date: 2010-07-01&lt;br /&gt;value:  9.258150&lt;br /&gt;type: fc&#34;,&#34;date: 2010-08-01&lt;br /&gt;value: 13.439529&lt;br /&gt;type: fc&#34;,&#34;date: 2010-09-01&lt;br /&gt;value:  6.082993&lt;br /&gt;type: fc&#34;,&#34;date: 2010-10-01&lt;br /&gt;value: 11.203073&lt;br /&gt;type: fc&#34;,&#34;date: 2010-11-01&lt;br /&gt;value: 10.097250&lt;br /&gt;type: fc&#34;,&#34;date: 2010-12-01&lt;br /&gt;value: 10.318260&lt;br /&gt;type: fc&#34;,&#34;date: 2011-01-01&lt;br /&gt;value: 10.711135&lt;br /&gt;type: fc&#34;,&#34;date: 2011-02-01&lt;br /&gt;value:  8.594424&lt;br /&gt;type: fc&#34;,&#34;date: 2011-03-01&lt;br /&gt;value:  9.000302&lt;br /&gt;type: fc&#34;,&#34;date: 2011-04-01&lt;br /&gt;value:  7.355419&lt;br /&gt;type: fc&#34;,&#34;date: 2011-05-01&lt;br /&gt;value:  7.227701&lt;br /&gt;type: fc&#34;,&#34;date: 2011-06-01&lt;br /&gt;value: 10.528469&lt;br /&gt;type: fc&#34;,&#34;date: 2011-07-01&lt;br /&gt;value: 10.875703&lt;br /&gt;type: fc&#34;,&#34;date: 2011-08-01&lt;br /&gt;value:  9.927210&lt;br /&gt;type: fc&#34;,&#34;date: 2011-09-01&lt;br /&gt;value: 12.013442&lt;br /&gt;type: fc&#34;,&#34;date: 2011-10-01&lt;br /&gt;value: 14.720203&lt;br /&gt;type: fc&#34;,&#34;date: 2011-11-01&lt;br /&gt;value:  8.621525&lt;br /&gt;type: fc&#34;,&#34;date: 2011-12-01&lt;br /&gt;value:  4.257995&lt;br /&gt;type: fc&#34;,&#34;date: 2012-01-01&lt;br /&gt;value: 12.213772&lt;br /&gt;type: fc&#34;,&#34;date: 2012-02-01&lt;br /&gt;value:  8.097918&lt;br /&gt;type: fc&#34;,&#34;date: 2012-03-01&lt;br /&gt;value:  8.148779&lt;br /&gt;type: fc&#34;,&#34;date: 2012-04-01&lt;br /&gt;value: 12.261371&lt;br /&gt;type: fc&#34;,&#34;date: 2012-05-01&lt;br /&gt;value:  9.116545&lt;br /&gt;type: fc&#34;,&#34;date: 2012-06-01&lt;br /&gt;value:  6.870277&lt;br /&gt;type: fc&#34;],&#34;type&#34;:&#34;bar&#34;,&#34;textposition&#34;:&#34;none&#34;,&#34;marker&#34;:{&#34;autocolorscale&#34;:false,&#34;color&#34;:&#34;rgba(255,165,0,0.8)&#34;,&#34;line&#34;:{&#34;width&#34;:1.88976377952756,&#34;color&#34;:&#34;transparent&#34;}},&#34;name&#34;:&#34;fc&#34;,&#34;legendgroup&#34;:&#34;fc&#34;,&#34;showlegend&#34;:true,&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;hoverinfo&#34;:&#34;text&#34;,&#34;frame&#34;:null}],&#34;layout&#34;:{&#34;margin&#34;:{&#34;t&#34;:47.4819427148194,&#34;r&#34;:7.30593607305936,&#34;b&#34;:40.1826484018265,&#34;l&#34;:37.2602739726027},&#34;plot_bgcolor&#34;:&#34;rgba(255,255,255,1)&#34;,&#34;paper_bgcolor&#34;:&#34;rgba(255,255,255,1)&#34;,&#34;font&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;PingFangSC-Regular&#34;,&#34;size&#34;:14.6118721461187},&#34;title&#34;:{&#34;text&#34;:&#34;Compare Actual with Forecast Value&#34;,&#34;font&#34;:{&#34;color&#34;:&#34;rgba(32,64,112,1)&#34;,&#34;family&#34;:&#34;PingFangSC-Medium&#34;,&#34;size&#34;:21.2536322125363},&#34;x&#34;:0.5,&#34;xref&#34;:&#34;paper&#34;},&#34;xaxis&#34;:{&#34;domain&#34;:[0,1],&#34;automargin&#34;:true,&#34;type&#34;:&#34;linear&#34;,&#34;autorange&#34;:false,&#34;range&#34;:[14552.04,15549.96],&#34;tickmode&#34;:&#34;array&#34;,&#34;ticktext&#34;:[&#34;2010-05&#34;,&#34;2010-11&#34;,&#34;2011-05&#34;,&#34;2011-11&#34;,&#34;2012-05&#34;],&#34;tickvals&#34;:[14730,14914,15095,15279,15461],&#34;categoryorder&#34;:&#34;array&#34;,&#34;categoryarray&#34;:[&#34;2010-05&#34;,&#34;2010-11&#34;,&#34;2011-05&#34;,&#34;2011-11&#34;,&#34;2012-05&#34;],&#34;nticks&#34;:null,&#34;ticks&#34;:&#34;outside&#34;,&#34;tickcolor&#34;:&#34;rgba(51,51,51,1)&#34;,&#34;ticklen&#34;:3.65296803652968,&#34;tickwidth&#34;:0.66417600664176,&#34;showticklabels&#34;:true,&#34;tickfont&#34;:{&#34;color&#34;:&#34;rgba(77,77,77,1)&#34;,&#34;family&#34;:&#34;PingFangSC-Regular&#34;,&#34;size&#34;:11.689497716895},&#34;tickangle&#34;:-0,&#34;showline&#34;:false,&#34;linecolor&#34;:null,&#34;linewidth&#34;:0,&#34;showgrid&#34;:false,&#34;gridcolor&#34;:null,&#34;gridwidth&#34;:0,&#34;zeroline&#34;:false,&#34;anchor&#34;:&#34;y&#34;,&#34;title&#34;:{&#34;text&#34;:&#34;month&#34;,&#34;font&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;PingFangSC-Regular&#34;,&#34;size&#34;:14.6118721461187}},&#34;hoverformat&#34;:&#34;.2f&#34;},&#34;yaxis&#34;:{&#34;domain&#34;:[0,1],&#34;automargin&#34;:true,&#34;type&#34;:&#34;linear&#34;,&#34;autorange&#34;:false,&#34;range&#34;:[-0.768036970520462,16.1287763809297],&#34;tickmode&#34;:&#34;array&#34;,&#34;ticktext&#34;:[&#34;0&#34;,&#34;5&#34;,&#34;10&#34;,&#34;15&#34;],&#34;tickvals&#34;:[0,5,10,15],&#34;categoryorder&#34;:&#34;array&#34;,&#34;categoryarray&#34;:[&#34;0&#34;,&#34;5&#34;,&#34;10&#34;,&#34;15&#34;],&#34;nticks&#34;:null,&#34;ticks&#34;:&#34;outside&#34;,&#34;tickcolor&#34;:&#34;rgba(51,51,51,1)&#34;,&#34;ticklen&#34;:3.65296803652968,&#34;tickwidth&#34;:0.66417600664176,&#34;showticklabels&#34;:true,&#34;tickfont&#34;:{&#34;color&#34;:&#34;rgba(77,77,77,1)&#34;,&#34;family&#34;:&#34;PingFangSC-Regular&#34;,&#34;size&#34;:11.689497716895},&#34;tickangle&#34;:-0,&#34;showline&#34;:false,&#34;linecolor&#34;:null,&#34;linewidth&#34;:0,&#34;showgrid&#34;:true,&#34;gridcolor&#34;:&#34;rgba(235,235,235,1)&#34;,&#34;gridwidth&#34;:0.66417600664176,&#34;zeroline&#34;:false,&#34;anchor&#34;:&#34;x&#34;,&#34;title&#34;:{&#34;text&#34;:&#34;value&#34;,&#34;font&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;PingFangSC-Regular&#34;,&#34;size&#34;:14.6118721461187}},&#34;hoverformat&#34;:&#34;.2f&#34;},&#34;shapes&#34;:[{&#34;type&#34;:&#34;rect&#34;,&#34;fillcolor&#34;:&#34;transparent&#34;,&#34;line&#34;:{&#34;color&#34;:&#34;rgba(51,51,51,1)&#34;,&#34;width&#34;:0.66417600664176,&#34;linetype&#34;:&#34;solid&#34;},&#34;yref&#34;:&#34;paper&#34;,&#34;xref&#34;:&#34;paper&#34;,&#34;x0&#34;:0,&#34;x1&#34;:1,&#34;y0&#34;:0,&#34;y1&#34;:1}],&#34;showlegend&#34;:true,&#34;legend&#34;:{&#34;bgcolor&#34;:&#34;rgba(255,255,255,1)&#34;,&#34;bordercolor&#34;:&#34;transparent&#34;,&#34;borderwidth&#34;:1.88976377952756,&#34;font&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;PingFangSC-Regular&#34;,&#34;size&#34;:11.689497716895},&#34;title&#34;:{&#34;text&#34;:&#34;type&#34;,&#34;font&#34;:{&#34;color&#34;:&#34;rgba(0,0,0,1)&#34;,&#34;family&#34;:&#34;PingFangSC-Regular&#34;,&#34;size&#34;:14.6118721461187}}},&#34;hovermode&#34;:&#34;closest&#34;,&#34;barmode&#34;:&#34;relative&#34;},&#34;config&#34;:{&#34;doubleClick&#34;:&#34;reset&#34;,&#34;modeBarButtonsToAdd&#34;:[&#34;hoverclosest&#34;,&#34;hovercompare&#34;],&#34;showSendToCloud&#34;:false},&#34;source&#34;:&#34;A&#34;,&#34;attrs&#34;:{&#34;584a654cdd5b&#34;:{&#34;x&#34;:{},&#34;y&#34;:{},&#34;fill&#34;:{},&#34;type&#34;:&#34;bar&#34;}},&#34;cur_data&#34;:&#34;584a654cdd5b&#34;,&#34;visdat&#34;:{&#34;584a654cdd5b&#34;:[&#34;function (y) &#34;,&#34;x&#34;]},&#34;highlight&#34;:{&#34;on&#34;:&#34;plotly_click&#34;,&#34;persistent&#34;:false,&#34;dynamic&#34;:false,&#34;selectize&#34;:false,&#34;opacityDim&#34;:0.2,&#34;selected&#34;:{&#34;opacity&#34;:1},&#34;debounce&#34;:0},&#34;shinyEvents&#34;:[&#34;plotly_hover&#34;,&#34;plotly_click&#34;,&#34;plotly_selected&#34;,&#34;plotly_relayout&#34;,&#34;plotly_brushed&#34;,&#34;plotly_brushing&#34;,&#34;plotly_clickannotation&#34;,&#34;plotly_doubleclick&#34;,&#34;plotly_deselect&#34;,&#34;plotly_afterplot&#34;,&#34;plotly_sunburstclick&#34;],&#34;base_url&#34;:&#34;https://plot.ly&#34;},&#34;evals&#34;:[],&#34;jsHooks&#34;:[]}&lt;/script&gt;
&lt;h1 id=&#34;plotly&#34;&gt;Plotly&lt;/h1&gt;
&lt;p&gt;For advanced usage, please use &lt;code&gt;plotly&lt;/code&gt; package function directly!&lt;/p&gt;
&lt;p&gt;Reference: &lt;a href=&#34;https://plotly.com/r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;plotly r official website&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quickly learn use cheat sheet for plotly.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# step 1: make a plotly object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;plot_ly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# step 2: add trace&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;plotly&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;add_trace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;plt_dat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;color&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;bar&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;colors&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;steelblue&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;orange&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;text&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;hovertemplate&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;%{text}&amp;lt;br&amp;gt;%{y:.2f}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# step 3: set layout, i.e. x-axis, y-axis, title, etc.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;plotly&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;layout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Compare Actual with Forecast Value&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;xaxis&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;tickformat&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;%m\n%Y\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;month&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;showline&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;mirror&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;yaxis&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;showline&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;mirror&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;TRUE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;print your &lt;code&gt;plotly&lt;/code&gt; object :)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div id=&#34;htmlwidget-2&#34; style=&#34;width:672px;height:480px;&#34; class=&#34;plotly html-widget&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;application/json&#34; data-for=&#34;htmlwidget-2&#34;&gt;{&#34;x&#34;:{&#34;visdat&#34;:{&#34;584aee8277e&#34;:[&#34;function () &#34;,&#34;plotlyVisDat&#34;],&#34;584a2b78c8d7&#34;:[&#34;function () &#34;,&#34;data&#34;]},&#34;cur_data&#34;:&#34;584a2b78c8d7&#34;,&#34;attrs&#34;:{&#34;584a2b78c8d7&#34;:{&#34;alpha_stroke&#34;:1,&#34;sizes&#34;:[10,100],&#34;spans&#34;:[1,20],&#34;x&#34;:{},&#34;y&#34;:{},&#34;color&#34;:{},&#34;type&#34;:&#34;bar&#34;,&#34;colors&#34;:[&#34;steelblue&#34;,&#34;orange&#34;],&#34;text&#34;:{},&#34;hovertemplate&#34;:&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;inherit&#34;:true}},&#34;layout&#34;:{&#34;margin&#34;:{&#34;b&#34;:40,&#34;l&#34;:60,&#34;t&#34;:25,&#34;r&#34;:10},&#34;title&#34;:&#34;Compare Actual with Forecast Value&#34;,&#34;xaxis&#34;:{&#34;domain&#34;:[0,1],&#34;automargin&#34;:true,&#34;tickformat&#34;:&#34;%m&lt;br /&gt;%Y&lt;br /&gt;&#34;,&#34;title&#34;:&#34;month&#34;,&#34;showline&#34;:true,&#34;mirror&#34;:true},&#34;yaxis&#34;:{&#34;domain&#34;:[0,1],&#34;automargin&#34;:true,&#34;showline&#34;:true,&#34;mirror&#34;:true,&#34;title&#34;:&#34;value&#34;},&#34;hovermode&#34;:&#34;closest&#34;,&#34;showlegend&#34;:true},&#34;source&#34;:&#34;A&#34;,&#34;config&#34;:{&#34;modeBarButtonsToAdd&#34;:[&#34;hoverclosest&#34;,&#34;hovercompare&#34;],&#34;showSendToCloud&#34;:false},&#34;data&#34;:[{&#34;x&#34;:[&#34;2010-01-01&#34;,&#34;2010-02-01&#34;,&#34;2010-03-01&#34;,&#34;2010-04-01&#34;,&#34;2010-05-01&#34;,&#34;2010-06-01&#34;,&#34;2010-07-01&#34;,&#34;2010-08-01&#34;,&#34;2010-09-01&#34;,&#34;2010-10-01&#34;,&#34;2010-11-01&#34;,&#34;2010-12-01&#34;,&#34;2011-01-01&#34;,&#34;2011-02-01&#34;,&#34;2011-03-01&#34;,&#34;2011-04-01&#34;,&#34;2011-05-01&#34;,&#34;2011-06-01&#34;,&#34;2011-07-01&#34;,&#34;2011-08-01&#34;,&#34;2011-09-01&#34;,&#34;2011-10-01&#34;,&#34;2011-11-01&#34;,&#34;2011-12-01&#34;,&#34;2012-01-01&#34;,&#34;2012-02-01&#34;,&#34;2012-03-01&#34;,&#34;2012-04-01&#34;,&#34;2012-05-01&#34;,&#34;2012-06-01&#34;],&#34;y&#34;:[8.31857306034336,9.30946753155016,14.6761249424474,10.2115251742737,10.3878632054828,15.1451949606498,11.3827486179676,6.2048162961804,7.93944144431942,8.66301408970013,13.6722453923184,11.0794414811721,11.2023143517822,10.3320481478354,8.33247659573778,15.3607394104092,11.4935514346877,4.10014853011109,12.1040677046911,8.5816257768162,6.79652888203946,9.34607525602511,6.92198665507828,7.81332631212658,8.12488219645223,4.93992006777276,12.5133611334836,10.4601193535095,6.58558918896416,13.7614447632098],&#34;type&#34;:&#34;bar&#34;,&#34;text&#34;:[&#34;2010-01-01&#34;,&#34;2010-02-01&#34;,&#34;2010-03-01&#34;,&#34;2010-04-01&#34;,&#34;2010-05-01&#34;,&#34;2010-06-01&#34;,&#34;2010-07-01&#34;,&#34;2010-08-01&#34;,&#34;2010-09-01&#34;,&#34;2010-10-01&#34;,&#34;2010-11-01&#34;,&#34;2010-12-01&#34;,&#34;2011-01-01&#34;,&#34;2011-02-01&#34;,&#34;2011-03-01&#34;,&#34;2011-04-01&#34;,&#34;2011-05-01&#34;,&#34;2011-06-01&#34;,&#34;2011-07-01&#34;,&#34;2011-08-01&#34;,&#34;2011-09-01&#34;,&#34;2011-10-01&#34;,&#34;2011-11-01&#34;,&#34;2011-12-01&#34;,&#34;2012-01-01&#34;,&#34;2012-02-01&#34;,&#34;2012-03-01&#34;,&#34;2012-04-01&#34;,&#34;2012-05-01&#34;,&#34;2012-06-01&#34;],&#34;hovertemplate&#34;:[&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;],&#34;name&#34;:&#34;actual&#34;,&#34;marker&#34;:{&#34;color&#34;:&#34;rgba(70,130,180,1)&#34;,&#34;line&#34;:{&#34;color&#34;:&#34;rgba(70,130,180,1)&#34;}},&#34;textfont&#34;:{&#34;color&#34;:&#34;rgba(70,130,180,1)&#34;},&#34;error_y&#34;:{&#34;color&#34;:&#34;rgba(70,130,180,1)&#34;},&#34;error_x&#34;:{&#34;color&#34;:&#34;rgba(70,130,180,1)&#34;},&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;frame&#34;:null},{&#34;x&#34;:[&#34;2010-01-01&#34;,&#34;2010-02-01&#34;,&#34;2010-03-01&#34;,&#34;2010-04-01&#34;,&#34;2010-05-01&#34;,&#34;2010-06-01&#34;,&#34;2010-07-01&#34;,&#34;2010-08-01&#34;,&#34;2010-09-01&#34;,&#34;2010-10-01&#34;,&#34;2010-11-01&#34;,&#34;2010-12-01&#34;,&#34;2011-01-01&#34;,&#34;2011-02-01&#34;,&#34;2011-03-01&#34;,&#34;2011-04-01&#34;,&#34;2011-05-01&#34;,&#34;2011-06-01&#34;,&#34;2011-07-01&#34;,&#34;2011-08-01&#34;,&#34;2011-09-01&#34;,&#34;2011-10-01&#34;,&#34;2011-11-01&#34;,&#34;2011-12-01&#34;,&#34;2012-01-01&#34;,&#34;2012-02-01&#34;,&#34;2012-03-01&#34;,&#34;2012-04-01&#34;,&#34;2012-05-01&#34;,&#34;2012-06-01&#34;],&#34;y&#34;:[11.6719162840072,9.59991424046761,10.4079644335874,9.73148778716311,9.69711090250084,13.0846454816347,9.25814963441776,13.4395294506309,6.08299326984747,11.2030729991266,10.0972501852271,10.3182597649855,10.7111347586237,8.59442371253768,9.00030227919339,7.35541908054299,7.22770105645861,10.5284687393702,10.8757034687106,9.92721014415321,12.0134419229114,14.7202032455051,8.62152520146432,4.25799469846205,12.2137724587094,8.09791816980226,8.14877932047834,12.2613712872721,9.11654478307758,6.87027749058912],&#34;type&#34;:&#34;bar&#34;,&#34;text&#34;:[&#34;2010-01-01&#34;,&#34;2010-02-01&#34;,&#34;2010-03-01&#34;,&#34;2010-04-01&#34;,&#34;2010-05-01&#34;,&#34;2010-06-01&#34;,&#34;2010-07-01&#34;,&#34;2010-08-01&#34;,&#34;2010-09-01&#34;,&#34;2010-10-01&#34;,&#34;2010-11-01&#34;,&#34;2010-12-01&#34;,&#34;2011-01-01&#34;,&#34;2011-02-01&#34;,&#34;2011-03-01&#34;,&#34;2011-04-01&#34;,&#34;2011-05-01&#34;,&#34;2011-06-01&#34;,&#34;2011-07-01&#34;,&#34;2011-08-01&#34;,&#34;2011-09-01&#34;,&#34;2011-10-01&#34;,&#34;2011-11-01&#34;,&#34;2011-12-01&#34;,&#34;2012-01-01&#34;,&#34;2012-02-01&#34;,&#34;2012-03-01&#34;,&#34;2012-04-01&#34;,&#34;2012-05-01&#34;,&#34;2012-06-01&#34;],&#34;hovertemplate&#34;:[&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;,&#34;%{text}&lt;br&gt;%{y:.2f}&#34;],&#34;name&#34;:&#34;fc&#34;,&#34;marker&#34;:{&#34;color&#34;:&#34;rgba(255,165,0,1)&#34;,&#34;line&#34;:{&#34;color&#34;:&#34;rgba(255,165,0,1)&#34;}},&#34;textfont&#34;:{&#34;color&#34;:&#34;rgba(255,165,0,1)&#34;},&#34;error_y&#34;:{&#34;color&#34;:&#34;rgba(255,165,0,1)&#34;},&#34;error_x&#34;:{&#34;color&#34;:&#34;rgba(255,165,0,1)&#34;},&#34;xaxis&#34;:&#34;x&#34;,&#34;yaxis&#34;:&#34;y&#34;,&#34;frame&#34;:null}],&#34;highlight&#34;:{&#34;on&#34;:&#34;plotly_click&#34;,&#34;persistent&#34;:false,&#34;dynamic&#34;:false,&#34;selectize&#34;:false,&#34;opacityDim&#34;:0.2,&#34;selected&#34;:{&#34;opacity&#34;:1},&#34;debounce&#34;:0},&#34;shinyEvents&#34;:[&#34;plotly_hover&#34;,&#34;plotly_click&#34;,&#34;plotly_selected&#34;,&#34;plotly_relayout&#34;,&#34;plotly_brushed&#34;,&#34;plotly_brushing&#34;,&#34;plotly_clickannotation&#34;,&#34;plotly_doubleclick&#34;,&#34;plotly_deselect&#34;,&#34;plotly_afterplot&#34;,&#34;plotly_sunburstclick&#34;],&#34;base_url&#34;:&#34;https://plot.ly&#34;},&#34;evals&#34;:[],&#34;jsHooks&#34;:[]}&lt;/script&gt;
&lt;h1 id=&#34;plotly-reference&#34;&gt;Plotly Reference&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://plotly.com/r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;plotly r official website&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://plotly.com/ggplot2/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;plotly r 4 ggplot official website&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>Shell Tutorial For R User</title>
      <link>https://chenxing.space/blog/shell-tutorial-for-r-user/</link>
      <pubDate>Fri, 05 Feb 2021 00:00:00 +0000</pubDate>
      <guid>https://chenxing.space/blog/shell-tutorial-for-r-user/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s go over some basic shell commands.&lt;/p&gt;
&lt;h2 id=&#34;get-started&#34;&gt;Get started&lt;/h2&gt;





&lt;table class=&#34;table table-striped table-bordered&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;In R&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;whoami&lt;/td&gt;
&lt;td&gt;Who is the user?&lt;/td&gt;
&lt;td&gt;Sys.info() / whoami::whoami()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;date&lt;/td&gt;
&lt;td&gt;Get date &amp;amp; time&lt;/td&gt;
&lt;td&gt;Sys.date() / Sys.time()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cal&lt;/td&gt;
&lt;td&gt;Display Calendar&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;clear&lt;/td&gt;
&lt;td&gt;Clear the screen&lt;/td&gt;
&lt;td&gt;Ctrl + L&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-zsh&#34; data-lang=&#34;zsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;whoami &lt;span class=&#34;c1&#34;&gt;# who is the user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;date &lt;span class=&#34;c1&#34;&gt;# get data &amp;amp; time&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cal &lt;span class=&#34;c1&#34;&gt;# display canlendar&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;clear &lt;span class=&#34;c1&#34;&gt;# clear the screen, crtl + l&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;helpdocumentation&#34;&gt;Help/Documentation&lt;/h2&gt;





&lt;table class=&#34;table table-striped table-bordered&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;In R&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;whatis&lt;/td&gt;
&lt;td&gt;Single line description of a command&lt;/td&gt;
&lt;td&gt;? / ?? / help()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;man&lt;/td&gt;
&lt;td&gt;Display manual pages for a command&lt;/td&gt;
&lt;td&gt;? / ?? / help()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;help&lt;/td&gt;
&lt;td&gt;Display manual pages for a command&lt;/td&gt;
&lt;td&gt;? / ?? / help()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/?&lt;/td&gt;
&lt;td&gt;Display manual pages for a command&lt;/td&gt;
&lt;td&gt;? / ?? / help()&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-zsh&#34; data-lang=&#34;zsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;man ls &lt;span class=&#34;c1&#34;&gt;# help &amp;amp; documentation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;whatis ls &lt;span class=&#34;c1&#34;&gt;# single line description of a command&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# help命令是bash内建命令，用于显示bash内建命令的帮助信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;navigating-file-system&#34;&gt;Navigating file system&lt;/h2&gt;





&lt;table class=&#34;table table-striped table-bordered&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Command&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Description&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;In R&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;pwd&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Print working directory&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;getwd() / here::here()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;ls&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;List directory contents&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;dir() / list.files() / list.dirs() / dir_info() / fs::dir_ls()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;cd&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Change current working directory&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;setwd()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;mkdir&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Create directory&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;dir.create() / fs::dir_create()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;rmdir&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Remove/delete directory&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;fs::dir_delete()&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-zsh&#34; data-lang=&#34;zsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;pwd&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# print working directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ls &lt;span class=&#34;c1&#34;&gt;# list files &amp;amp; folders&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir &lt;span class=&#34;nb&#34;&gt;test&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# create directory called test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;change-working-directory&#34;&gt;change working directory&lt;/h3&gt;





&lt;table class=&#34;table table-striped table-bordered&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;cd&lt;/td&gt;
&lt;td&gt;Navigate into directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cd ..&lt;/td&gt;
&lt;td&gt;Go up one level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cd -&lt;/td&gt;
&lt;td&gt;Go to previous working directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cd ~&lt;/td&gt;
&lt;td&gt;Change directory to home directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cd /&lt;/td&gt;
&lt;td&gt;Change directory to root directory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-zsh&#34; data-lang=&#34;zsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;test&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# navigate into test directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; .. &lt;span class=&#34;c1&#34;&gt;# go up to one level&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; - &lt;span class=&#34;c1&#34;&gt;# go to previous working directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~ &lt;span class=&#34;c1&#34;&gt;# change directory to home directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; / &lt;span class=&#34;c1&#34;&gt;# change directory to root directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rmdir &lt;span class=&#34;nb&#34;&gt;test&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# remove empty directory, note that the folder must be empty&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;list-the-file-and-folders&#34;&gt;list the file and folders&lt;/h3&gt;





&lt;table class=&#34;table table-striped table-bordered&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ls&lt;/td&gt;
&lt;td&gt;List directory contents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls -l&lt;/td&gt;
&lt;td&gt;List files one per line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls -a&lt;/td&gt;
&lt;td&gt;List all files, including hidden files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls - la&lt;/td&gt;
&lt;td&gt;Display permission, ownership, size &amp;amp; modification date&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls -lh&lt;/td&gt;
&lt;td&gt;Long format with size displayed in human readable units&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls -lS&lt;/td&gt;
&lt;td&gt;Long format list sorted by size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls -ltr&lt;/td&gt;
&lt;td&gt;Long format list sorted by modification date&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

</description>
    </item>
    
  </channel>
</rss>
