-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathch12.Rmd
79 lines (61 loc) · 1.73 KB
/
ch12.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
---
title: "使用 %>% 簡化程式"
author: "郭耀仁"
date: "`r Sys.Date()`"
output: slidy_presentation
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, results = 'hide', warning = FALSE)
```
## magrittr 套件
- 安裝並且載入 `magrittr` 套件
```
install.packages("magrittr")
```
```{r}
library(magrittr)
```
## 將 `Sys.Date()` 的年份轉換成數字
```{r}
# 第一種寫法
sys_date_chr <- Sys.Date()
sys_date_yr_chr <- format(Sys.Date(), format = "%Y")
# sys_date_yr_chr <- substr(sys_date_chr, start = 1, stop = 4)
sys_date_yr_num <- as.numeric(sys_date_yr_chr)
```
## 將 `Sys.Date()` 的年份轉換成數字(2)
```{r}
# 第二種寫法
sys_date_yr_num <- as.numeric(format(Sys.Date(), format = "%Y"))
# sys_date_yr_num <- as.numeric(substr(Sys.Date(), start = 1, stop = 4))
```
## 將 `Sys.Date()` 的年份轉換成數字(3)
- 第一種寫法很清晰,但是創造出太多最後用不到的變數(佔用記憶體)
- 第二種寫法很有效率,但是不夠清晰
- 第三種寫法使用 %>%(pipe operator)可以保有上述兩種的優點
```{r}
# 第三種寫法
sys_date_yr_num <- Sys.Date() %>%
format(format = "%Y") %>%
as.numeric()
```
## 加入普通的運算符號
- 使用 \`\` 將運算符號包起來
- 使用 `()` 將運算數字包起來
```{r}
# Beyond 創立於 1983 年
beyond_age <- Sys.Date() %>%
format(format = "%Y") %>%
as.numeric() %>%
`-` (1983)
beyond_age
```
## 使用句點 `.` 指定資料安插的位置
- 預設的狀況下,`%>%` 會將資料傳遞至右側函數的第一個位置
- 使用句點 `.` 可以改變參數的位置
```{r}
# cars_lm <- cars %>%
#lm(formula = dist ~ speed)
cars_lm <- cars %>%
lm(formula = dist ~ speed, data = .)
```