-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLab02_Homework_R-Basic.Rmd
executable file
·79 lines (55 loc) · 1.99 KB
/
Lab02_Homework_R-Basic.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
---
title: "Lab02_Homework_R-Basic"
author: "你是誰 R09342000 新聞所碩五"
date: "2021/03/02"
output:
html_document:
number_sections: no
theme: united
highlight: tango
toc: yes
toc_float:
collapsed: no
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, results = 'hold', comment = '#>', error = TRUE)
```
## 作業目的: atomic vector and list
這份作業希望能夠讓你熟悉操作 atomic vector and list。
## 作業: RMarkdown 語法練習
滿分共 100 分。
### A. vector (50 分)
(1) 底下的 code chunk 中,有兩個長度不同的向量,`vector_01_left` 與 `vector_01_right` ,兩者相乘後並沒有出現錯誤。請解釋為什麼他們可以相乘而不會出現 error,結果的值又是怎麼計算得到的?<br>
**把解釋寫在這**:
```{r warning=FALSE}
# (1)
vector_01_left <- c(1,3,5,10,12)
vector_01_right <- c(2,3)
vector_01_left*vector_01_right
```
(2) 請利用兩種**不同的**方法,將`vector_02`變成`c(2,3,5)`,並將結果分別存到 `vector_03` 和 `vector_04` 裡面。但不能直接使用 assignment 的偷懶做法 (assignment 是指 `vector_03 <- c(2,3,5)` )
```{r warning=FALSE}
# (2)
vector_02 <- c(1,3,5)
### your code
# method01
# method02
```
### B. list (50 分)
底下有兩個 list,請撰寫程式
(1) 利用 `[]`, `[[]]`, `$`,無論哪種,抓出`list_true`的 `TRUE` 元素,底下有附上預期的結果可以用來比對自己的答案是否正確
(2) 利用 assignment 以外的方法 (assignment 是指 `list_true <- list_final`),將 `list_true` 的值變成 `list_final` 的值,並利用`identical(list_true, list_final)`檢查兩者是否相等
```{r}
list_true <- list(a="bcd",c=list(1,2,"g"),5,abc=list(6,4,list(TRUE)))
list_final <- list( c=list(1, "g"),5,abc=list(6,4,list(FALSE)))
### your code
# (1)
# expected output
# [1] TRUE
# (2)
# check
identical(list_true, list_final)
# expected output
# [1] TRUE
# 現在是 FALSE 若你改動成功會變成 TRUE
```