2016年6月9日 星期四

Swirl_01-RBasic-02-Data-Structure-Vectors

 01-RBasic-02-Data-Structure-Vectors
---------------------------------------------
01. `max(x)`會傳回x 中最大的值,而`min(x)`會傳回x 最小的值

02. 函數`range`就能直接傳回輸入向量的 範圍(最小到最大)

03. `sum(x)`會傳回x 所有值的加總。 `length(x)`函數能直接傳回x 的長度

04. `mean(x)`就能直接 計算x的平均值

05. `var(x)`樣本變異數: `sum((x - mean(x))^2) / (length(x)-1)`

06. `sd(x)`計算x 的樣本標準差

07. `sort(x)`則會產生一個和x 長度一樣的向量,但是值是 由小到大排列

08. `sqrt(x)`代表的就是數學上開根號的運算

09. 產生一些附帶有規則的序列。例如: `1:10`就會產生自1至10的序列。`seq(1, 10)`其實就是`1:10`

10. `:`這個運算子的優先層級很高,也就是說如果R 看到:`2 * 1:10`這段expression,會優先處理`1:10`,然後再把所有結果乘以2

11. 想要重複一個數字,則可以用`rep(x)`

12. 在R 中,邏輯值「真」常用`TRUE`或`T`來代表。「假」則用`FALSE`或`F`代表。第三種在邏輯向量會出現的值,就是NA(Not Available)

13. 邏輯向量的「條件」有:大於`>`、大於等於`>=`、 小於`<`、小於等於`<=`、相等`==`和不相等`!=`。

14. 邏輯運算子「且」`&`和「或」`|`

15. 當資料的值無法取得的時候,R 就會給它一個特殊的記號:NA

16. `is.na(x)`來判斷一個向量裡面有沒有NA

17. NA和NaN。 NA代表的是缺失值,而NaN往往來自於數學運算中沒有定義的行為。 例如:`sqrt(-17)`、`0/0`和`Inf - Inf`。在R 裡面,無限大就是`Inf`

18. 雖然我們理解NA和NaN的不同,但是`is.na`會把兩者都看成TRUE

19. 「字串」是透過單引號`'`或雙引號`"`來建立的

20. 在R 中,`\`符號代表字串中的跳脫符號。舉例來說,如果我們要輸入一個包含雙引號的字串,有兩種方法:一種是用單引號`'`來包覆雙引號,另外一種就是在雙引號之前插入`\`

21. `paste(x)`是在R中常常用來做字串處理的函數。我們可以丟任意個 arguments 給`paste`,結果R會把這些argument以字串的形式接成一個字串。
    > paste(c("X", "Y"), 1:10)
    [1] "X 1"  "Y 2"  "X 3"  "Y 4"  "X 5"  "Y 6"  "X 7"  "Y 8"  "X 9"  "Y 10"

22. `paste0`預設在串接字串的時候,中間是不會有空格
    > paste0(c("X", "Y"), 1:10)
    [1] "X1"  "Y2"  "X3"  "Y4"  "X5"  "Y6"  "X7"  "Y8"  "X9"  "Y10"

23. 挑選向量中一部份的資料。x<- c(10.4,5.6, 3.1, 6.4)
    第一種方法,使用坐標。如果要挑選x 的 第一和第三個位置的值,只要使用:`x[c(1,3)]`
    第二種方法,是利用邏輯向量。如果要 挑選x 之中超過5 的值,就透過`x[x > 5]`
    第三種方法,是削去法。如果要挑x _除了_第二個之外的 全部的值,可以使用`x[-2]`

24. R的向量中,每一個值是可以有名字的。舉例來說,我們可以透過: `names(x) <- c("a", "b", "c", "d")`來幫x的每個值取名
    > x
    a    b    c    d
    10.4  5.6  3.1  6.4











沒有留言:

張貼留言