互式文檔是一種創建Shiny apps的新途徑。交互式文檔是一種包含Shiny控件與輸出的 R Markdown文件, 你可以在 markdown中寫報告,并且作為app來啟動它。
本文主要闡述如何使用R Markdown寫報告。
與本文配套的文獻 Introduction to interactive documents, 將向你展示如何通過將R Markdown 報告轉變成為帶有Shiny組件的交互式文檔。
R Markdown是通過R語言制作動態文檔的文件格式。R Markdown文檔在markdown中完成,其中包含嵌入的R代碼,如下圖:
---
title: R Markdown
output: html_document
---
This is an R Markdown document. Markdown is a simple formatting syntax which allows you to author HTML, PDF, and MS Word documents. For more details on how to use R Markdown, see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
```{r}
summary(cars)
```
You can also embed plots:
```{r, echo=FALSE}
plot(cars)
```
Note that the `echo=FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
R Markdown文檔編輯需要 rmarkdown包,rmarkdown安裝需要RStudio編輯器環境,但是你可以以github途徑來下載rmarkdown,并安裝。
devtools:install_github("rmarkdown", "rstudio")
R Markdown是資源代碼豐富并高可用的文件,你可以將通過一下兩種方式改變R Markdown文件格式。
先,我霸都傲天申明絕對是完全免費,不會在文章中推銷什么云服務器,虛擬主機等。而且操作步驟上手簡單,即使非IT人員也很容易實現。
局限:只能是靜態網站的個人網站
面向讀者:所有人包括非IT人員
首先如果你無法理解“靜態網站”的話,那么相信我,靜態網站就可以滿足你大部分個人網站的需求。其次這篇文章更多的是面向非IT人員,因為我寫這篇文章的原因是我的一個同學的故事:
我同學小A是律師,他想把自己處理過的一些案件記錄在自己的個人博客中,他已經注冊了公眾號。但是他始終覺得有個網站或者個人博客會顯得專業一些,而且還可以展示自己的個人履歷,把這個網站鏈接放在公眾號里面會顯得跟專業一些。“好吧,我明白了~”
而且學會自己搭建一個靜態網站是一個很酷的事情,你可以做一些很漂亮的宣傳頁,或者表達自我主張的個人博客,或者在我以前的文章里面給別人做一個網頁版生日祝福or紀念日等等。
所以開始吧~
首先我們要用到的工具是著名的開源社區Github,我們做的靜態網站最終要托管在上面,這個功能叫做“Github Pages”,是一項免費的靜態文件部署服務。
雖然Github是國外的網站,但是在國內可以訪問并且速度還不錯!
有人擔心,如果以后Github被墻了怎么辦?
放心,即使被墻了,你學會如下的操作依然可以在類似的國內平臺,例如碼云等
(如果有賬號請直接登錄然后跳轉到教程下一步)
訪問Github,點擊SIGN UP按鈕。(Sign in是登錄的意思,應該都很好理解)還有Github是全英文的,沒有中文的哦親,但這不影響我們使用的。
注冊很簡單,只需要用戶名,密碼,郵箱即可,不需要手機號。(對了,用戶名用一個酷一點或者有意義一點的,因為它會出現在你的網址中)
接著,Github會問你是否需要付費使用。這里選擇不用,因為Github提供的免費服務已經能滿足大部分人包括開發者的需要了。付費服務主要是面向團隊以及企業。
后面還會有一些步驟,大概意思就是問你想用Github做什么,你對Git的熟練程度,(感覺像是moba游戲新手調研都會這么做)因為Github網站迭代的原因可能會稍有不同。比如筆者這里試的時候是這樣子的。
然后Github會給你注冊的郵箱發送一個確認鏈接,請點擊鏈接確認,不激活的話是無法正常使用Github的服務的。這個是Github的反爬蟲系統。(題外話:Github的反爬蟲系統很強很強!)
如果收件箱沒有看到,那么不用想了,一定在垃圾箱里面!
到這里我們的注冊就完成了。
接下來我們要創建一個倉庫,倉庫就是保存代碼的地方,也就是保存網站的地方。這里我們做一個最簡單的網站:個人簡歷。
1,首先點擊“Your repositories”,查看個人全部倉庫,第一次肯定是空空如也啊。
2,接著我們新建一個倉庫
3,這一步很重要,倉庫的名字不可以隨便寫,必須是 <我的名字>.github.io
比如我注冊的名字是 zhihu1,所以這里我創建的倉庫的名字必須是 : http://zhihu1.github.io
4,接著下一步頁面會比較復雜,你會看到一大堆看不懂的東西,其實那些事git操作提示。如果你熟練git的話就知道了。不過我們不管這些,我們只需要創建一個新的文件就行啦!
5,新文件的名字不可以亂寫哦,必須是 index.html,這里大家都一樣都寫這個。(題外話:靜態http文件托管服務的默認訪問文件就是index.html)
可以參考筆者的內容如下,改成你自己的介紹哦~
<p>Hello 大家好</p>
<p>我是霸都丶傲天,這是我的個人網站。 </p>
<p>很高興你來到這里, 你可以在以下的網站找到我</p>
<ul>
<li> <a href="https://www.zhihu.com/people/AJLoveChina">知乎</a> </li>
<li> <a href="http://hejie.nigeerhuo.com">我的博客(已經不更細了,現在在知乎寫文章)</a> </li>
</ul>
到這里,我們一個最簡單的個人網站的代碼就完成了。接下來最重要的一步,我們需要知道網站的鏈接啊,只有這樣,別人才能訪問我們的網站呀。
1,點擊settings
2,然后往下翻找到 Github Pages, 看到綠色提示,后面的鏈接就是你的網站地址了,打開看看吧~
Tip:很多老鐵評論說這里看不到綠色框框,沒有URL。那是因為你的倉庫名稱與用戶名不一致,不過不用擔心,也是有辦法的,看下面的第二張圖片。
3,點開網站看一下
完成!
其實細心的同學會發現,其實我們的網站地址和我們寫的倉庫名稱是一樣的,是滴!而且非常有個性的是我們的名字還出現在網站地址中。
筆者的Github倉庫&&網址:Git倉庫地址 http://zhihu1.github.io/
本來到這里這個教程已經結束了,但是我想有的同學肯定是不滿意的。首先你的這個網站做的太簡陋了吧,不是我想要的那種!
那好,其實學會這個教程就可以做下面兩個非常炫酷的小站點了,一個是生日祝福,一個是愛情紀念日。都是很有意義、很溫馨的題材哦:)
霸都丶傲天: 改改數據,為心愛的人做一個超具創意的網頁生日祝福吧~霸都丶傲天:5分鐘做一個免費的網頁愛情樹,快快學習發給自己的女朋友吧(微信QQ都可以查看哦)^_^霸都丶傲天:告白氣球? 圣誕節的創意網頁小禮物不了解一下么?所以是這樣子的,我沒有演示復雜的網頁是因為它需要寫的代碼太多了,許多第一次接觸Github的老鐵,或者以前從來沒接觸過HTML的人就會有點陌生。
是的,這里我們提到了HTML,它就是網頁的描述語言,對HTML感興趣我推薦這些最好的免費自學網站。
后面一段時間,我還會出一些更高級的個人網站教程。所謂更高級不是說寫一大堆代碼,而是如何使用業界非常流行的靜態網站生成器來做個人網站。靜態網站生成器的英文說法叫做“static-site-generator”。我們只需要關注創作內容即可,這些工具可以幫助我們把網頁做的非常絢麗,非常的awesome!
Github上面有專門的相關主題,并且非常火,這里我給個截圖
最后,這篇文章的初衷還是寫給對編程知識不懂但是又感興趣的老鐵,以及剛上大學計算機系的后起新秀,做一個個人網站可以很大程度提高自己學習編程的動力,所以我覺得這是很有意義的一件事情。
感謝評論里的老鐵各位的建議,有些老鐵看了可能會疑惑,我來解答吧:
當然如果對上面感興趣的老鐵也可以在評論里面說,我也可以出類似的文章說一下怎么做的,用起來都很方便。
最后的最后,有什么問題直接評論即可,拜拜┏(^0^)┛,樓主鎮樓。
本來是一直用jupyter跑R的,自己看過程什么的都沒有問題,但是身邊的同學大多數用的都是spss,很尷尬,想把自己的結果分析過程給同學瞅瞅就很麻煩,今天發現了一個可以幫助我的利器R Markdown。
嘗試著給大家寫寫,關注我!你不會后悔的,嘿嘿。
介紹R Markdown之前先介紹Markdown!
MarkDown是一種輕量級的【標記語言】,目前也被越來越多的寫作愛好者,撰稿者廣泛使用。一旦熟悉MarkDown這種語法規則,就可以享有一勞永逸的排版效果。
而R Markdown就是將R代碼和Markdown整合而成的幫助我們排版或者出版R代碼的。利用R Markdown我們可以將自己的數據分析過程轉換為PDF或HTML格式,方便我們快速做總結或書寫文檔和與他人共享。
R markdown可以記錄你使用的raw data,記錄你處理和清理數據的每一個步驟的code,可以顯示你使用的挖掘算法和可視化圖表,可以完整的說明整個task的思路和最終得到的結果。
R markdown可以讓你更好的展示或者報告分享自己的數據分析過程,哪怕你的受眾并不使用R也無所謂,Markdown可生成包括HTML、PDF、WORD、PPT等各種形式的內容。
如上圖,新建一個text file,因為今天是第一次寫R Markdown,我就沒有直接新建R Markdown了,是為了大家更好理解。大家也可以選擇直接新建R Markdown,不過你會發現新建的是一個演示文檔。
新建text file完成后將其保存,如下圖以Rmd為擴展名進行命名,此時我們的R Markdown就建好了。
為了更好的給大家說明,此次依然用一個很簡單的R project作為例子,譬如,我們在console中做了如下分析
data("cars")
str(cars)
summary(cars)
plot(cars)
hist(cars$speed)
boxplot(cars$dist)
上面的代碼都超級簡單,但是不懂R的人也看不明白。
好了,現在我想把我所做的上面的工作分享給我的同學,可是人家都不用R,也看不明白R代碼,怎么樣能讓他知道我的代碼的運行過程和究竟做了什么事呢,讓我們一起用R markdown來美觀清晰又易懂的展示我們的工作吧。
#Codewar 的第一個markdown,歡迎關注哦
**第一部分**
```{r}
data(cars)
str(cars)
summary(cars)
plot(cars)
```
***第二部分***
```{r}
hist(cars$speed)
boxplot(cars$dist)
```
車車的平均速度是 `r mean(cars$speed)`.
#完畢,歡迎關注codewar!
上面就是我寫的我的第一個R markdown代碼,這段markdown代碼完全重復了上面代碼塊中的分析過程,具體細節稍微解釋一下,以后的文章會詳細解釋,歡迎關注:比如說#這個符號就是標題,```{r}就是代碼塊,`r就是行內代碼,等等,R markdown還有很多妙用,我也正在學習,以后慢慢給大家分享。
上面的markdown代碼運行后點擊Knit你可以選擇輸出為html,pdf,ppt等等,比如我選擇輸出為html就是下圖中的樣子,這下不用R的同學也可以非常清楚的知道你的分析過程是怎樣的啦。
其余的markdown的用法,大家大可以參考R自帶的參考文件,當然你自己不愿意看的話,關注我就好啦,我講給你聽。
今天很簡單的給大家寫了R markdown的使用,其實R markdown還有很多東西我自己也不會正在學,以后會慢慢寫出來,同時今天文章中的markdown代碼我也一并上傳到百度云了,大家關注后私信自取,感謝大家耐心看完。發表這些東西的主要目的就是督促自己,希望大家關注評論指出不足,一起進步。內容我都會寫的很細,用到的數據集也會在原文中給出鏈接,你只要按照文章中的代碼自己也可以做出一樣的結果,一個目的就是零基礎也能懂,因為自己就是什么基礎沒有從零學Python和R的,加油。
(站外鏈接發不了,請關注后私信回復“數據鏈接”獲取本頭條號所有使用數據)
R數據分析:如何用R做數據模擬
*請認真填寫需求信息,我們會在24小時內與您取得聯系。