---
title: "我的R Markdown學習密笈"
subtitle: "Department of Statistics, National Taipei University"
author: "吳漢銘"
date: "`r format(Sys.time(), '%d %B %Y')`" 
output: 
  bookdown::html_document2: 
    toc: true
    toc_depth: 3
    number_sections: true  
    theme: united 
    highlight: tango
---

<!-- 全域設定 -->
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

<!-- 
###########################################################
# 第一章: Markdown Syntax                                 #
# 這註解是個人風格，也不一定要照著做                      #
###########################################################
-->

# Markdown Syntax 語法 {#Syntax}

## 標題
# Header 1 標題1 (不標號) {.unnumbered}
## Header 2 標題2 (不標號) {-}
### Header 3 標題3 {-}
#### Header 4 標題4 {-}
##### Header 5 標題5 {-}
###### Header 6 標題6 {-} 


## 列舉: 項目符號清單
* Plain text 一般文字
     + *italics* and _italics_ 
     + *斜體* 和 _斜體_
     + <em>italics 斜體 </em>
          - **bold** and __bold__
          - **粗體** 和 __粗體__
* 顏色(html): <span style="color: green;">這裡是綠色的字</span>。


## 列舉: 編號清單
1. superscript^2^, 上標^2^ 
2. subscript~2~, 下標~2~ 
    i) 這裡是[RStudio](http://www.rstudio.com)連結。
    ii) 我的網站: <http://www.hmwu.idv.tw>  
        A. endash: --   連接號: --  
        B. emdash: ---  破折號: ---   
        C. ellipsis: ... 省略符號: ...  
        D. ~~strikethrough~~, ~~刪除線~~


End a line with two spaces to start a new paragraph.
使用兩列空格來結束一行，開始新的的段落。



<!-- 
############################################################
# 程式碼                                                   #       
#                                                          # 
############################################################
-->
# 程式碼


## 文中程式指令
我最常用的R指令是`str`, 最好的用的是`apply`系列指令。

## 內嵌程式碼 (code inline)
整數1連加到100的總和是  `r sum(1:100)`, `R`語言的程式碼是`sum(1:100)`。 


## code chunk 程式區塊 (列出程式碼)
```{r} 
paste("Hello", "World!") 
``` 

## code chunk 程式區塊 (印出提示符號)
```{r prompt=TRUE} 
paste("Hello", "World!") 
``` 

## code chunk 程式區塊 (不列出程式碼)
```{r eval=TRUE, echo=FALSE} 
paste("Hello", "World!") 
``` 

## 程式碼照印 (verbatim) 

```
# 109-1-R-exam2
# ex1(a)
my.inverse <- function(n){
  cat("計算反矩陣\n")  
  cat("請輸入", n, " by ", n, "之矩陣:")
  m <- matrix(scan(), ncol=n, nrow=n)
  list(Mat=m, Mat.inverse=solve(m))
}

my.inverse(n=3)
```

<!-- 
############################################################
# 表格                                                     #       
#                                                          # 
############################################################
-->
# 表格


## 手繪表格
Table Header | Second Header
-------------| -------------
Table Cell   | Cell 2
Cell 3       | Cell 4 


## 原本的資料框(`data.frame`)表格
```{r results = 'asis'}
head(airquality) # don't work in R Markdown
```

## knitr::kable的表格
```{r airquality, results = 'asis'}
mydata <- airquality[1:4, ]
knitr::kable(mydata, caption = "Table with kable")
```

## xtable::xtable的表格
```{r results = "asis"} 
# install.packages("xtable")
library(xtable)
print(xtable(mydata, caption = "Table with xtable"), type = "html")
``` 


<!-- 
###########################################################
# 圖形                                                    #
#                                                         #
###########################################################
-->
# 圖形


## 基礎圖形(Base Graphics)
```{r iris-plot, fig.cap="The iris data."}
attach(iris)
par(mfrow=c(1, 2))
plot(Sepal.Length, col=iris$Species, main="Index Plot")
hist(Sepal.Length, main="Histogram")
```


## 基礎圖形(Base Graphics) (控制大小)
```{r fig.height = 4, fig.width = 6}
attach(iris)
par(mfrow=c(1, 2))
plot(Sepal.Length, col=iris$Species, main="Index Plot")
hist(Sepal.Length, main="Histogram")
```

## ggplot2圖形(置中)
```{r fig.align = "center"} 
# install.packages("ggplot2")
# install.packages("gridExtra")
#library(ggplot2)
suppressMessages(require(ggplot2))
library(gridExtra)
p1 <- ggplot(iris, aes(x=1:length(Sepal.Length), y=Sepal.Length, 
                       color=Species)) + geom_point(size=3)
p2 <- ggplot(iris, aes(x=Sepal.Length)) + 
        geom_histogram()
grid.arrange(p1, p2, nrow=1, ncol=2)
```


## 圖片
image 圖片: ![這是R語言的官方標誌](Rlogo.png){width=30%}


## 圖片(利用knitr)
```{r, out.width='25%', fig.align="center", fig.cap="R的Logo"}
knitr::include_graphics("Rlogo.png")
```

<!-- 
###########################################################
# 數學式                                                  #
#                                                         #
###########################################################
-->
# 數學式


## 文中數式
圓面積: $A = \pi\times r^{2}$，平均數$\bar{X}=\frac{\sum_{i=1}^n x_i}{n}$.


## 單獨數式 (無編號)
這是常態分佈的機率密度函數:
\[ 
f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{\frac{(x-\mu)^2}{2\sigma^2}} 
\] 


## 單獨數式 (有編號)

以下是有數學式編號的範例:
\begin{equation}
\Theta = 
  \begin{pmatrix}
    \alpha & \beta \\
    \gamma & \delta
  \end{pmatrix} (\#eq:matrix)
\end{equation}


\begin{equation}
  E=mc^2
  (\#eq:emc)
\end{equation}




<!-- 
###########################################################
# 其它                                                    #
#                                                         #
###########################################################
-->
# 其它


三個以上的連續星號(*)產生一水平線: 

****** 

三個以上的連續減號(-)產生一斷頁(Page Break): 

------


> block quote 這裡是引用區塊



這是第一句話，以下有二列空白。
<br><br/><br><br/>
這是第二句話，上面有二列空白。


加一條灰色水平線(html碼):
<hr style="border:1px solid gray"> </hr>


這是需要註解的一句話footnote ^[這裡是註解]


<!-- 
###########################################################
# 參考書目                                                #
#                                                         #
###########################################################
-->
# 引用

* 標題引用: Markdown Syntax 語法在第\@ref(Syntax)章。
* 圖形引用: See Figure \@ref(fig:iris-plot)
* 表格引用: See Table \@ref(tab:airquality)
* 數學式引用: See Equation \@ref(eq:matrix)

