- 建立 R 的使用環境
- 熟悉 R 語言基礎操作
- 敘述句、數列
- 查詢說明檔
- 了解 R 語言的物件的結構
- 變數型態:logical、numeric、character、factor
- 資料存放容器:list、data.frame
報告產出
install.packages("rmarkdown")
$ equation $
$$ equation $$
rmarkdown::render("input.Rmd")
# Header 1
## Header 2
### Header 3
#### Header 4
##### Header 5
###### Header 6
**bold**
或 __bold__
*italics*
或 _italics_
~~我是豬~~
結果:
我是正常文字
粗體:bold
斜體:italics
刪除線:我是豬
+
、*
、-
,列點文字image: ![](path/to/smallorb.png)
[木下柚香](https://www.youtube.com/watch?v=ArPaid2Iuck&t=49s)
嵌入表格:
標題一 | 標題二 -------------| ------------- 123 | 456 789 | 0.0
請大家以下面的文字為樣板,打出一篇簡短的自我介紹:
大家好,我是LIYUN(1.使用粗體),目前就讀於國立政治大學,家裡共有:
有六個成員,我是女生,我長這樣: (3.請放照片)
想要和我做朋有的人可以加我臉書(4.請放你的臉書連結)
大家好,我是**LIYUN**(1.使用粗體),目前就讀於國立政治大學,家裡共有: \ + 我爸 \ + 我媽 \ + 我哥 \ + 我大弟 \ + 我小弟 \ 有六個成員,我是女生,我長這樣: ![](你的圖片路徑) 想要和我做朋有的人可以加我[臉書](https://goo.gl/h39Soa)
{r}及
包圍```{r}
summary(cars$dist)
```
summary(cars$dist)
Min. 1st Qu. Median Mean 3rd Qu. Max. 2.00 26.00 36.00 42.98 56.00 120.00
```{r plot}
summary(cars)
plot(cars)
```
echo
(TRUE): whether to include R source code in the output fileeval
(TRUE): whether to evaluate the code chunkmessage
(TRUE): whether to preserve messages emitted by message()include
(TRUE): if include=FALSE, nothing will be written into the output document, but the code is still evaluated and plot files are generatedwarning
(TRUE): whether to preserve warnings in the outputcomment
("##"): set to comment notation在編輯 RMarkdown 的過程中,想要測試 chunk 中的 code 是否成功,但又不想要每次檢查都 knit,不僅花費太多不必要的時間也浪費系統資源
請大家利用 iris 的資料依照不同的品種,畫出 Sepal.Length 及 Petal.Length 的散點圖
iris %>% ggplot(aes(x=Sepal.Length, y=Petal.Length, color=Species)) + geom_point(shape=1, size=2) # shape控制圖示;size控制點的大小
請大家在 Rmarkdown 中產出將剛剛的散點圖
```{r, echo=TRUE, message=TRUE, warning=TRUE}
library(dplyr)
library(ggplot2)
```
```{r}
iris %>%
ggplot(aes(x=Sepal.Length, y=Petal.Length, color=Species)) +
geom_point(shape=1, size=2)
```
利用R Markdown 製作《一周天氣預報》書面報告。
利用R Markdown 製作《一周天氣預報》書面報告。
# Hint: # 1. 下載weatherbig5.csv到自己的電腦上 # 2. 在R chunk中,利用read.csv()讀取檔案進行分析 # MAC : read.csv(,fileEncoding="big5") # 3. 找出05/23當日最高溫 max() # 4. 找出05/23當日最低溫 min() # 5. use inline R chunk `r max(...)`
利用R Markdown 製作《一周天氣預報》書面報告。
# Hint for Linu& Mac: dat <- read.csv("data/weatherbig5.csv", fileEncoding="big5") max(dat[1:2, 4:5]) min(dat[1:2, 4:5]) # 預測高溫約`r max(dat[1:2,4:5])`度,低溫約`r min(dat[1:2,4:5])`度
# Hint for Windows: dat <- read.csv("data/weatherbig5.csv") max(dat[1:2, 4:5]) min(dat[1:2, 4:5]) # 預測高溫約`r max(dat[1:2,4:5])`度,低溫約`r min(dat[1:2,4:5])`度
print(head(women))
height weight 1 58 115 2 59 117 3 60 120 4 61 123 5 62 126 6 63 129
results='asis'
knitr::kable
,呈現表格在output上
```{r, results='asis'}
knitr::kable(women)
```
height | weight |
---|---|
58 | 115 |
59 | 117 |
60 | 120 |
61 | 123 |
62 | 126 |
63 | 129 |
install.packages("DT")
library(DT)
```{r}
datatable(head(iris))
```
datatable(iris) %>% formatStyle('Sepal.Length', color = 'red', backgroundColor = 'orange', fontWeight = 'bold')
datatable(cars) %>% formatStyle( 'dist' , target = 'row', backgroundColor = styleEqual(c(10), c('pink')) )
options = list(pageLength = 數字)
參數調整# 呈現三列 datatable(iris, options = list(pageLength = 3)) # 呈現五列 datatable(cars, options = list(pageLength = 5))
利用R Markdown 製作《一周天氣預報》書面報告。
# Hint: # 你可能需要dplyr套件 # 可以先用filter把白天、晚上分開處理 # 利用 paste(低溫,高溫,sep="-") 來製作溫度區間, i.e. 16-17 # 利用colnames, rownames來對整理好的資料表的行與列命名
利用R Markdown 製作《一周天氣預報》書面報告。
day1 <- filter(dat, 早晚=="白天") day2 <- mutate(day1, 溫度=paste(高溫,低溫,sep="-")) day3 <- select(day2, 天氣, 溫度) night1 <- filter(dat, 早晚=="晚上") night2 <- mutate(night1, 溫度=paste(高溫,低溫,sep="-")) night3 <- select(night2, 天氣, 溫度) out <- data.frame(t(bind_cols(day3, night3))) colnames(out) <- day1$日期 rownames(out) <- c("白天天氣","白天溫度","晚上天氣","晚上溫度")
利用R Markdown 製作《一周天氣預報》書面報告。
```{r results='asis', echo=FALSE}
knitr::kable(out)
```
knitr::kable(out)
05/23 | 05/24 | 05/25 | 05/26 | 05/27 | 05/28 | 05/29 | |
---|---|---|---|---|---|---|---|
白天天氣 | 陰短暫雨 | 多雲短暫雨 | 多雲短暫雨 | 陰短暫雨 | 多雲時陰 | 多雲 | 多雲 |
白天溫度 | 32-24 | 30-25 | 26-23 | 27-23 | 27-23 | 28-23 | 28-23 |
晚上天氣 | 多雲短暫雨 | 多雲短暫雨 | 陰短暫雨 | 多雲短暫雨 | 多雲 | 多雲 | 多雲 |
晚上溫度 | 28-23 | 27-23 | 24-23 | 25-23 | 25-23 | 25-23 | 26-23 |
利用R Markdown 製作《一周天氣預報》書面報告。
# Hint: # 你可能需要ggplot2套件 # Mac顯示中文需設置字型 # http://equation85.github.io/blog/graph-font-of-r-in-mac-os-x/ # par(family='STHeiti')
利用R Markdown 製作《一周天氣預報》書面報告。
library(ggplot2) library(tidyr) dat1 <- mutate(weather, 時間=paste(日期,早晚,sep="\n")) dat2 <- select(dat1, 時間, 高溫, 低溫) dat3 <- gather(dat2,variable,value,2:3) ggplot(dat3, aes(x=時間, y=value, group=variable, colour=variable)) + geom_line() + labs(x="時間", y="溫度") + theme_gray(base_family="STHeiti") # 顯示中文字 Mac user only
利用R Markdown 製作《一周天氣預報》書面報告。
theme: united
表示目錄的主題選擇為united
,可以變動--- title: "你Rmarkdown的名稱" author: "名字" date: "2017/5/20" output: html_document: theme: united toc : true toc_float: true ---
fig_width
以及fig_height: 7.5
參數調整toc_depth
表示顯示到多大的標題
toc_depth: 4
會顯示有少於或等於四個井字號####
的標題--- title: "你Rmarkdown的名稱" author: "名字" date: "2017/5/20" output: html_document: theme: united fig_width: 10 fig_height: 7.5 toc : true toc_depth: 4 toc_float: true ---
---
title: "Introduction to R Markdown"
author: "Lin"
date: "2016-06-30"
output: html_document
---
```{r results='asis', echo=FALSE}
library(whisker)
temp = '<span class="{{color}}{{number}}">{{color}}{{number}}</span>'
numbers = c("", "2", "3")
colors = c("red", "blue", "green", "yellow", "gray")
for (color in colors){
cat("- ")
for (number in numbers){
out = whisker.render(temp)
cat(out)
}
cat("\n")
}
```
iframe: displaying a web page within a web page
<iframe src="https://dsp.im/" height=600 width=800></iframe>
img: inserting images into an HTML document.
Much easier for adjusting width and height.
<img src="img/me.png" height="100" width="500">
It’s possible to embed a Shiny application within a document.
Using R packages::slidify to publish your slides to the web
library(slidify) publish_github("repo", username="user_name") publish_rpubs("title","file_name.html") publish_dropbox(dir_name) publish_gist("title",file="file_name.html",publish=TRUE)
Slidify簡介 by Wush Wu
https://www.youtube.com/watch?v=P97udK2ktuY
20121203 MLDM Monday:markdown + knitr (Hangout 轉播) by Wush Wu
https://www.youtube.com/watch?v=OHKZLeKlUsM