1.複習

1.1 Assignment

x <- 3
x #print 
## [1] 3
y <- 4
y + 5
## [1] 9
z <- x + 17*y
z
## [1] 71
rm(z) #delete z
# z #Result:Error: object 'z' not found

1.2 Value comparisons

2 == 2
## [1] TRUE
2 != 2
## [1] FALSE
x <= y
## [1] TRUE

1.3 Special constants

  • NA for missing or undefined data
  • NULL for empty object (e.g. null/empty lists)
  • Inf and -Inf for positive and negative infinity(正/負無限大)
  • NaN for results that cannot be reasonably defined(無法合理定義的結果)
5 + NA #result:NA
## [1] NA
is.na(5 + NA) #檢查是否是NA
## [1] TRUE
10 + NULL #result:空的object,長度為0
## numeric(0)
is.null(NULL) #檢查是不是NULL
## [1] TRUE
5/0
## [1] Inf
is.finite(5/0) #檢查是不是正無限大
## [1] FALSE
0/0
## [1] NaN
is.nan(0/0)
## [1] TRUE

1.4 Vectors

利用c()建立Vector

v1 <- c(1, 5, 11, 33)
v2 <- c("hello", "world")
v3 <- c(TRUE, TRUE, FALSE)

將不同類型的元素放在同一個vector中,會將vector中其他元素轉換定為限制最小的類型

v4 <- c(v1, v2, v3, "boo")
v4
##  [1] "1"     "5"     "11"    "33"    "hello" "world" "TRUE"  "TRUE"  "FALSE"
## [10] "boo"
v <- 1:7 #c(1,2,3,4,5,6,7)
v <- rep(0,3) #c(0,0,0)重複0,3次
v <- rep(1:3, times = 2) #c(1,2,3,1,2,3)重複1,2,3,2次
v <- rep(1:3, each = 2) #c(1,1,2,2,3,3)重複每個元素2次
v <- seq(10, 20, 2) #c(10,12,14,16,18,20)10~20間以2為單位增加

v1 <- 1:5 #c(1,2,3,4,5)
v2 <- rep(1,5) #c(1,1,1,1,1)

長度

length(v1)
## [1] 5
length(v2)
## [1] 5

運算

v1 + v2 #c(1,2,3,4,5)+c(1,1,1,1,1)
## [1] 2 3 4 5 6
v1 + 1 # c(1+1,2+1,3+1,4+1,5+1)
## [1] 2 3 4 5 6
v1 *2 #c(1*2,2*2,3*2,4*2,5*2)
## [1]  2  4  6  8 10
# v1 + c(1,7)# This doesn't work: 因為兩個長度不同

數學運算

sum(v1) #總和
## [1] 15
mean(v1) #平均
## [1] 3
sd(v1) #標準差
## [1] 1.581139
cor(v1, v1*5) #v1和v1 * 5之間的關聯(Correlation)
## [1] 1
v1 > 2 #每個元素和2比較
## [1] FALSE FALSE  TRUE  TRUE  TRUE
v1 == v2 #每個元素和相對應的v2的元素比較
## [1]  TRUE FALSE FALSE FALSE FALSE
v1 != v2
## [1] FALSE  TRUE  TRUE  TRUE  TRUE
(v1 > 2) | (v2 > 0) #OR,return vector
## [1] TRUE TRUE TRUE TRUE TRUE
(v1 > 2) & (v2 > 0) #AND,return vector
## [1] FALSE FALSE  TRUE  TRUE  TRUE
(v1 > 2) || (v2 > 0) #OR,return a value
## [1] TRUE
(v1 > 2) && (v2 > 0) #AND,return a value
## [1] FALSE
v1[3] #v1的第3個
## [1] 3
v1[2:4] #v1的第2~4的
## [1] 2 3 4
v1[c(1,3)] #v1的第1和3個 
## [1] 1 3
v1[c(T,T,F,F,F)] #v1的1和2(是True的)
## [1] 1 2
v1[v1 > 3] #v1中>3是TRUE的
## [1] 4 5

R的index是從1開始

v1[6:10] <- 6:10
length(v1) <- 15 #長度變成15,多的為NA
v1
##  [1]  1  2  3  4  5  6  7  8  9 10 NA NA NA NA NA

1.5 Factors

eye.col.v <- c("brown", "green", "brown", "blue", "blue", "blue") #vector
eye.col.f <- factor(c("brown", "green", "brown", "blue", "blue", "blue")) #factor

eye.col.v
## [1] "brown" "green" "brown" "blue"  "blue"  "blue"
eye.col.f
## [1] brown green brown blue  blue  blue 
## Levels: blue brown green
levels(eye.col.f)# The levels (distinct values) of the factor (categorical var)
## [1] "blue"  "brown" "green"
as.numeric(eye.col.f)  # 轉為數值:blue:1,brown:2,green:3
## [1] 2 3 2 1 1 1
#vector不能轉為數值
as.character(eye.col.f)  #轉為character
## [1] "brown" "green" "brown" "blue"  "blue"  "blue"
as.character(eye.col.v) 
## [1] "brown" "green" "brown" "blue"  "blue"  "blue"

1.6 Matrces & Arrays

m <- rep(1:20)
m
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
dim(m) <- c(5,4) #5x4矩陣
m
##      [,1] [,2] [,3] [,4]
## [1,]    1    6   11   16
## [2,]    2    7   12   17
## [3,]    3    8   13   18
## [4,]    4    9   14   19
## [5,]    5   10   15   20
m <- matrix(data = 1, nrow = 5, ncol = 4)
m
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    1    1    1    1
## [3,]    1    1    1    1
## [4,]    1    1    1    1
## [5,]    1    1    1    1
l <- matrix(1,5,4)
l
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    1    1    1    1
## [3,]    1    1    1    1
## [4,]    1    1    1    1
## [5,]    1    1    1    1
dim(l) #l的維度
## [1] 5 4
m <- cbind(1:5, 5:1, 5:9) #colum合併(5x3)
m
##      [,1] [,2] [,3]
## [1,]    1    5    5
## [2,]    2    4    6
## [3,]    3    3    7
## [4,]    4    2    8
## [5,]    5    1    9
m <- rbind(1:5, 5:1, 5:9) #row合併(3x5)
m
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    5    4    3    2    1
## [3,]    5    6    7    8    9
m <- matrix(1:10, 10, 10)
m[2,3]
## [1] 2
m[2,]
##  [1] 2 2 2 2 2 2 2 2 2 2
m[,2]
##  [1]  1  2  3  4  5  6  7  8  9 10
m[1:2,4:6] # rows 1 and 2, columns 4, 5 and 6
##      [,1] [,2] [,3]
## [1,]    1    1    1
## [2,]    2    2    2
m[-1,] #所有row除了第1個row
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
##  [1,]    2    2    2    2    2    2    2    2    2     2
##  [2,]    3    3    3    3    3    3    3    3    3     3
##  [3,]    4    4    4    4    4    4    4    4    4     4
##  [4,]    5    5    5    5    5    5    5    5    5     5
##  [5,]    6    6    6    6    6    6    6    6    6     6
##  [6,]    7    7    7    7    7    7    7    7    7     7
##  [7,]    8    8    8    8    8    8    8    8    8     8
##  [8,]    9    9    9    9    9    9    9    9    9     9
##  [9,]   10   10   10   10   10   10   10   10   10    10
m[1,] == m[,1] #row1的是不是等於colume1
##  [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
m > 3
##        [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]  [,9] [,10]
##  [1,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [2,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [3,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [4,]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [5,]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [6,]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [7,]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [8,]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [9,]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [10,]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
m[m > 3]
##  [1]  4  5  6  7  8  9 10  4  5  6  7  8  9 10  4  5  6  7  8  9 10  4  5  6  7
## [26]  8  9 10  4  5  6  7  8  9 10  4  5  6  7  8  9 10  4  5  6  7  8  9 10  4
## [51]  5  6  7  8  9 10  4  5  6  7  8  9 10  4  5  6  7  8  9 10
t(m) #轉置m
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
##  [1,]    1    2    3    4    5    6    7    8    9    10
##  [2,]    1    2    3    4    5    6    7    8    9    10
##  [3,]    1    2    3    4    5    6    7    8    9    10
##  [4,]    1    2    3    4    5    6    7    8    9    10
##  [5,]    1    2    3    4    5    6    7    8    9    10
##  [6,]    1    2    3    4    5    6    7    8    9    10
##  [7,]    1    2    3    4    5    6    7    8    9    10
##  [8,]    1    2    3    4    5    6    7    8    9    10
##  [9,]    1    2    3    4    5    6    7    8    9    10
## [10,]    1    2    3    4    5    6    7    8    9    10
m <- t(m)
m %*% t(m) #矩陣乘法
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
##  [1,]  385  385  385  385  385  385  385  385  385   385
##  [2,]  385  385  385  385  385  385  385  385  385   385
##  [3,]  385  385  385  385  385  385  385  385  385   385
##  [4,]  385  385  385  385  385  385  385  385  385   385
##  [5,]  385  385  385  385  385  385  385  385  385   385
##  [6,]  385  385  385  385  385  385  385  385  385   385
##  [7,]  385  385  385  385  385  385  385  385  385   385
##  [8,]  385  385  385  385  385  385  385  385  385   385
##  [9,]  385  385  385  385  385  385  385  385  385   385
## [10,]  385  385  385  385  385  385  385  385  385   385
m*m
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
##  [1,]    1    4    9   16   25   36   49   64   81   100
##  [2,]    1    4    9   16   25   36   49   64   81   100
##  [3,]    1    4    9   16   25   36   49   64   81   100
##  [4,]    1    4    9   16   25   36   49   64   81   100
##  [5,]    1    4    9   16   25   36   49   64   81   100
##  [6,]    1    4    9   16   25   36   49   64   81   100
##  [7,]    1    4    9   16   25   36   49   64   81   100
##  [8,]    1    4    9   16   25   36   49   64   81   100
##  [9,]    1    4    9   16   25   36   49   64   81   100
## [10,]    1    4    9   16   25   36   49   64   81   100
a <- array(data = 1:18, dim = c(3,3,2))
a
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]   10   13   16
## [2,]   11   14   17
## [3,]   12   15   18
a <- array(1:18, c(3, 3, 2))
a
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]   10   13   16
## [2,]   11   14   17
## [3,]   12   15   18

1.7 Lists

l1 <- list(boo = v1, foo = v2, moo = v3, zoo = "Animals
           !")
l2 <- list(v1, v2, v3, "Animals!")
# 空的list
l3 <- list()
l4 <- NULL
l1["boo"] # returns a list.
## $boo
##  [1]  1  2  3  4  5  6  7  8  9 10 NA NA NA NA NA
l1[["boo"]] #returns the numeric vector
##  [1]  1  2  3  4  5  6  7  8  9 10 NA NA NA NA NA
l1[[1]] 
##  [1]  1  2  3  4  5  6  7  8  9 10 NA NA NA NA NA
l1$boo 
##  [1]  1  2  3  4  5  6  7  8  9 10 NA NA NA NA NA
l3[[1]] <- 11 # add an element to the empty list l3

l4[[3]] <- c(22, 23) # add a vector as element 3 in the empty list l4. 

在l4增加第三個位置,所以1,2個位子是NULL

l1[[5]] <- "More elements!" # l1有4個元素,我們在這裡添加第5個元素。

l1[[8]] <- 1:11 #l1中添加第8個元素,但沒有添加第6和第7個元素。編號為6和7的元素將創建為空(NULL)。
l1$Something <- "A thing"  # Adds a ninth element - "A thing", named "Something"

1.8 Data Frames

rows as cases, columns as variables Each column is a vector or factor

dfr1 <- data.frame(ID = 1:4,
                   FirstName = c("John","Jim","Jane","Jill"),
                   Female=c(F,F,T,T), 
                   Age=c(22,33,44,55))

dfr1$FirstName   # Access the second column of dfr1. 
## [1] John Jim  Jane Jill
## Levels: Jane Jill Jim John

R認為dfr1$FirstName是類別變數(factor),不是character vector。

將“FirstName”當作vector

dfr1$FirstName <- as.vector(dfr1$FirstName)

stringsAsFactors=FALSE:告訴R不要當作factor

dfr2 <- data.frame(FirstName = c("John","Jim","Jane","Jill"), stringsAsFactors = F)

dfr2$FirstName
## [1] "John" "Jim"  "Jane" "Jill"

使用dataframe的element

dfr1[1,]   # First row, all columns
##   ID FirstName Female Age
## 1  1      John  FALSE  22
dfr1[,1]   # First column, all rows
## [1] 1 2 3 4
dfr1$Age   # Age column, all rows
## [1] 22 33 44 55
dfr1[1:2,3:4] # Rows 1 and 2, columns 3 and 4 - the gender and age of John & Jim
##   Female Age
## 1  FALSE  22
## 2  FALSE  33
dfr1[c(1,3),] # Rows 1 and 3, all columns
##   ID FirstName Female Age
## 1  1      John  FALSE  22
## 3  3      Jane   TRUE  44

找出30歲以上的名字

dfr1[dfr1$Age > 30, 2]
## [1] "Jim"  "Jane" "Jill"

所有女性平均年齡

mean(dfr1[dfr1$Female == TRUE, 4])
## [1] 49.5

1.9 Flow Control and loops

1. if

# if (condition) expr1 else expr2

x <- 5; y <- 10

if (x==0) y <- 0 else y <- y/x 

y
## [1] 2

2. for

ASum <- 0; AProd <- 1

for (i in 1:x)  

{

  ASum <- ASum + i

  AProd <- AProd * i

}

ASum  # equivalent to sum(1:x)
## [1] 15
AProd # equivalemt to prod(1:x)
## [1] 120

3. while

while (x > 0) {print(x); x <- x-1;}
## [1] 5
## [1] 4
## [1] 3
## [1] 2
## [1] 1
# repeat expr, use break to exit the loop

repeat { print(x); x <- x+1; if (x>10) break}
## [1] 0
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10

1.10 R plots and colors

x,y:點座標,pch:點符號形狀,cex:點大小,col:顏色

plot(x=1:10, y=rep(5,10), pch=19, cex=3, col="dark red") #有命名的顏色

points(x=1:10, y=rep(6, 10), pch=19, cex=3, col="557799") #色碼表

points(x=1:10, y=rep(4, 10), pch=19, cex=3, col=rgb(.25, .5, .3)) # RGB

RGB默認的範圍是0~1,可以用rgb(10, 100, 100, maxColorValue=255)設定成0-225

透明度alpha(範圍0~1)

plot(x=1:5, y=rep(5,5), pch=19, cex=12, col=rgb(.25, .5, .3, alpha=.5), xlim=c(0,6))

16進位顏色

使用 package grDevices的adjustcolor par():設定背景

par(bg="gray40")
col.tr <- grDevices::adjustcolor("557799", alpha=0.7)
plot(x=1:5, y=rep(5,5), pch=19, cex=12, col=col.tr, xlim=c(0,6)) 

內建顏色名稱

colors()                          # List all named colors
##   [1] "white"                "aliceblue"            "antiquewhite"        
##   [4] "antiquewhite1"        "antiquewhite2"        "antiquewhite3"       
##   [7] "antiquewhite4"        "aquamarine"           "aquamarine1"         
##  [10] "aquamarine2"          "aquamarine3"          "aquamarine4"         
##  [13] "azure"                "azure1"               "azure2"              
##  [16] "azure3"               "azure4"               "beige"               
##  [19] "bisque"               "bisque1"              "bisque2"             
##  [22] "bisque3"              "bisque4"              "black"               
##  [25] "blanchedalmond"       "blue"                 "blue1"               
##  [28] "blue2"                "blue3"                "blue4"               
##  [31] "blueviolet"           "brown"                "brown1"              
##  [34] "brown2"               "brown3"               "brown4"              
##  [37] "burlywood"            "burlywood1"           "burlywood2"          
##  [40] "burlywood3"           "burlywood4"           "cadetblue"           
##  [43] "cadetblue1"           "cadetblue2"           "cadetblue3"          
##  [46] "cadetblue4"           "chartreuse"           "chartreuse1"         
##  [49] "chartreuse2"          "chartreuse3"          "chartreuse4"         
##  [52] "chocolate"            "chocolate1"           "chocolate2"          
##  [55] "chocolate3"           "chocolate4"           "coral"               
##  [58] "coral1"               "coral2"               "coral3"              
##  [61] "coral4"               "cornflowerblue"       "cornsilk"            
##  [64] "cornsilk1"            "cornsilk2"            "cornsilk3"           
##  [67] "cornsilk4"            "cyan"                 "cyan1"               
##  [70] "cyan2"                "cyan3"                "cyan4"               
##  [73] "darkblue"             "darkcyan"             "darkgoldenrod"       
##  [76] "darkgoldenrod1"       "darkgoldenrod2"       "darkgoldenrod3"      
##  [79] "darkgoldenrod4"       "darkgray"             "darkgreen"           
##  [82] "darkgrey"             "darkkhaki"            "darkmagenta"         
##  [85] "darkolivegreen"       "darkolivegreen1"      "darkolivegreen2"     
##  [88] "darkolivegreen3"      "darkolivegreen4"      "darkorange"          
##  [91] "darkorange1"          "darkorange2"          "darkorange3"         
##  [94] "darkorange4"          "darkorchid"           "darkorchid1"         
##  [97] "darkorchid2"          "darkorchid3"          "darkorchid4"         
## [100] "darkred"              "darksalmon"           "darkseagreen"        
## [103] "darkseagreen1"        "darkseagreen2"        "darkseagreen3"       
## [106] "darkseagreen4"        "darkslateblue"        "darkslategray"       
## [109] "darkslategray1"       "darkslategray2"       "darkslategray3"      
## [112] "darkslategray4"       "darkslategrey"        "darkturquoise"       
## [115] "darkviolet"           "deeppink"             "deeppink1"           
## [118] "deeppink2"            "deeppink3"            "deeppink4"           
## [121] "deepskyblue"          "deepskyblue1"         "deepskyblue2"        
## [124] "deepskyblue3"         "deepskyblue4"         "dimgray"             
## [127] "dimgrey"              "dodgerblue"           "dodgerblue1"         
## [130] "dodgerblue2"          "dodgerblue3"          "dodgerblue4"         
## [133] "firebrick"            "firebrick1"           "firebrick2"          
## [136] "firebrick3"           "firebrick4"           "floralwhite"         
## [139] "forestgreen"          "gainsboro"            "ghostwhite"          
## [142] "gold"                 "gold1"                "gold2"               
## [145] "gold3"                "gold4"                "goldenrod"           
## [148] "goldenrod1"           "goldenrod2"           "goldenrod3"          
## [151] "goldenrod4"           "gray"                 "gray0"               
## [154] "gray1"                "gray2"                "gray3"               
## [157] "gray4"                "gray5"                "gray6"               
## [160] "gray7"                "gray8"                "gray9"               
## [163] "gray10"               "gray11"               "gray12"              
## [166] "gray13"               "gray14"               "gray15"              
## [169] "gray16"               "gray17"               "gray18"              
## [172] "gray19"               "gray20"               "gray21"              
## [175] "gray22"               "gray23"               "gray24"              
## [178] "gray25"               "gray26"               "gray27"              
## [181] "gray28"               "gray29"               "gray30"              
## [184] "gray31"               "gray32"               "gray33"              
## [187] "gray34"               "gray35"               "gray36"              
## [190] "gray37"               "gray38"               "gray39"              
## [193] "gray40"               "gray41"               "gray42"              
## [196] "gray43"               "gray44"               "gray45"              
## [199] "gray46"               "gray47"               "gray48"              
## [202] "gray49"               "gray50"               "gray51"              
## [205] "gray52"               "gray53"               "gray54"              
## [208] "gray55"               "gray56"               "gray57"              
## [211] "gray58"               "gray59"               "gray60"              
## [214] "gray61"               "gray62"               "gray63"              
## [217] "gray64"               "gray65"               "gray66"              
## [220] "gray67"               "gray68"               "gray69"              
## [223] "gray70"               "gray71"               "gray72"              
## [226] "gray73"               "gray74"               "gray75"              
## [229] "gray76"               "gray77"               "gray78"              
## [232] "gray79"               "gray80"               "gray81"              
## [235] "gray82"               "gray83"               "gray84"              
## [238] "gray85"               "gray86"               "gray87"              
## [241] "gray88"               "gray89"               "gray90"              
## [244] "gray91"               "gray92"               "gray93"              
## [247] "gray94"               "gray95"               "gray96"              
## [250] "gray97"               "gray98"               "gray99"              
## [253] "gray100"              "green"                "green1"              
## [256] "green2"               "green3"               "green4"              
## [259] "greenyellow"          "grey"                 "grey0"               
## [262] "grey1"                "grey2"                "grey3"               
## [265] "grey4"                "grey5"                "grey6"               
## [268] "grey7"                "grey8"                "grey9"               
## [271] "grey10"               "grey11"               "grey12"              
## [274] "grey13"               "grey14"               "grey15"              
## [277] "grey16"               "grey17"               "grey18"              
## [280] "grey19"               "grey20"               "grey21"              
## [283] "grey22"               "grey23"               "grey24"              
## [286] "grey25"               "grey26"               "grey27"              
## [289] "grey28"               "grey29"               "grey30"              
## [292] "grey31"               "grey32"               "grey33"              
## [295] "grey34"               "grey35"               "grey36"              
## [298] "grey37"               "grey38"               "grey39"              
## [301] "grey40"               "grey41"               "grey42"              
## [304] "grey43"               "grey44"               "grey45"              
## [307] "grey46"               "grey47"               "grey48"              
## [310] "grey49"               "grey50"               "grey51"              
## [313] "grey52"               "grey53"               "grey54"              
## [316] "grey55"               "grey56"               "grey57"              
## [319] "grey58"               "grey59"               "grey60"              
## [322] "grey61"               "grey62"               "grey63"              
## [325] "grey64"               "grey65"               "grey66"              
## [328] "grey67"               "grey68"               "grey69"              
## [331] "grey70"               "grey71"               "grey72"              
## [334] "grey73"               "grey74"               "grey75"              
## [337] "grey76"               "grey77"               "grey78"              
## [340] "grey79"               "grey80"               "grey81"              
## [343] "grey82"               "grey83"               "grey84"              
## [346] "grey85"               "grey86"               "grey87"              
## [349] "grey88"               "grey89"               "grey90"              
## [352] "grey91"               "grey92"               "grey93"              
## [355] "grey94"               "grey95"               "grey96"              
## [358] "grey97"               "grey98"               "grey99"              
## [361] "grey100"              "honeydew"             "honeydew1"           
## [364] "honeydew2"            "honeydew3"            "honeydew4"           
## [367] "hotpink"              "hotpink1"             "hotpink2"            
## [370] "hotpink3"             "hotpink4"             "indianred"           
## [373] "indianred1"           "indianred2"           "indianred3"          
## [376] "indianred4"           "ivory"                "ivory1"              
## [379] "ivory2"               "ivory3"               "ivory4"              
## [382] "khaki"                "khaki1"               "khaki2"              
## [385] "khaki3"               "khaki4"               "lavender"            
## [388] "lavenderblush"        "lavenderblush1"       "lavenderblush2"      
## [391] "lavenderblush3"       "lavenderblush4"       "lawngreen"           
## [394] "lemonchiffon"         "lemonchiffon1"        "lemonchiffon2"       
## [397] "lemonchiffon3"        "lemonchiffon4"        "lightblue"           
## [400] "lightblue1"           "lightblue2"           "lightblue3"          
## [403] "lightblue4"           "lightcoral"           "lightcyan"           
## [406] "lightcyan1"           "lightcyan2"           "lightcyan3"          
## [409] "lightcyan4"           "lightgoldenrod"       "lightgoldenrod1"     
## [412] "lightgoldenrod2"      "lightgoldenrod3"      "lightgoldenrod4"     
## [415] "lightgoldenrodyellow" "lightgray"            "lightgreen"          
## [418] "lightgrey"            "lightpink"            "lightpink1"          
## [421] "lightpink2"           "lightpink3"           "lightpink4"          
## [424] "lightsalmon"          "lightsalmon1"         "lightsalmon2"        
## [427] "lightsalmon3"         "lightsalmon4"         "lightseagreen"       
## [430] "lightskyblue"         "lightskyblue1"        "lightskyblue2"       
## [433] "lightskyblue3"        "lightskyblue4"        "lightslateblue"      
## [436] "lightslategray"       "lightslategrey"       "lightsteelblue"      
## [439] "lightsteelblue1"      "lightsteelblue2"      "lightsteelblue3"     
## [442] "lightsteelblue4"      "lightyellow"          "lightyellow1"        
## [445] "lightyellow2"         "lightyellow3"         "lightyellow4"        
## [448] "limegreen"            "linen"                "magenta"             
## [451] "magenta1"             "magenta2"             "magenta3"            
## [454] "magenta4"             "maroon"               "maroon1"             
## [457] "maroon2"              "maroon3"              "maroon4"             
## [460] "mediumaquamarine"     "mediumblue"           "mediumorchid"        
## [463] "mediumorchid1"        "mediumorchid2"        "mediumorchid3"       
## [466] "mediumorchid4"        "mediumpurple"         "mediumpurple1"       
## [469] "mediumpurple2"        "mediumpurple3"        "mediumpurple4"       
## [472] "mediumseagreen"       "mediumslateblue"      "mediumspringgreen"   
## [475] "mediumturquoise"      "mediumvioletred"      "midnightblue"        
## [478] "mintcream"            "mistyrose"            "mistyrose1"          
## [481] "mistyrose2"           "mistyrose3"           "mistyrose4"          
## [484] "moccasin"             "navajowhite"          "navajowhite1"        
## [487] "navajowhite2"         "navajowhite3"         "navajowhite4"        
## [490] "navy"                 "navyblue"             "oldlace"             
## [493] "olivedrab"            "olivedrab1"           "olivedrab2"          
## [496] "olivedrab3"           "olivedrab4"           "orange"              
## [499] "orange1"              "orange2"              "orange3"             
## [502] "orange4"              "orangered"            "orangered1"          
## [505] "orangered2"           "orangered3"           "orangered4"          
## [508] "orchid"               "orchid1"              "orchid2"             
## [511] "orchid3"              "orchid4"              "palegoldenrod"       
## [514] "palegreen"            "palegreen1"           "palegreen2"          
## [517] "palegreen3"           "palegreen4"           "paleturquoise"       
## [520] "paleturquoise1"       "paleturquoise2"       "paleturquoise3"      
## [523] "paleturquoise4"       "palevioletred"        "palevioletred1"      
## [526] "palevioletred2"       "palevioletred3"       "palevioletred4"      
## [529] "papayawhip"           "peachpuff"            "peachpuff1"          
## [532] "peachpuff2"           "peachpuff3"           "peachpuff4"          
## [535] "peru"                 "pink"                 "pink1"               
## [538] "pink2"                "pink3"                "pink4"               
## [541] "plum"                 "plum1"                "plum2"               
## [544] "plum3"                "plum4"                "powderblue"          
## [547] "purple"               "purple1"              "purple2"             
## [550] "purple3"              "purple4"              "red"                 
## [553] "red1"                 "red2"                 "red3"                
## [556] "red4"                 "rosybrown"            "rosybrown1"          
## [559] "rosybrown2"           "rosybrown3"           "rosybrown4"          
## [562] "royalblue"            "royalblue1"           "royalblue2"          
## [565] "royalblue3"           "royalblue4"           "saddlebrown"         
## [568] "salmon"               "salmon1"              "salmon2"             
## [571] "salmon3"              "salmon4"              "sandybrown"          
## [574] "seagreen"             "seagreen1"            "seagreen2"           
## [577] "seagreen3"            "seagreen4"            "seashell"            
## [580] "seashell1"            "seashell2"            "seashell3"           
## [583] "seashell4"            "sienna"               "sienna1"             
## [586] "sienna2"              "sienna3"              "sienna4"             
## [589] "skyblue"              "skyblue1"             "skyblue2"            
## [592] "skyblue3"             "skyblue4"             "slateblue"           
## [595] "slateblue1"           "slateblue2"           "slateblue3"          
## [598] "slateblue4"           "slategray"            "slategray1"          
## [601] "slategray2"           "slategray3"           "slategray4"          
## [604] "slategrey"            "snow"                 "snow1"               
## [607] "snow2"                "snow3"                "snow4"               
## [610] "springgreen"          "springgreen1"         "springgreen2"        
## [613] "springgreen3"         "springgreen4"         "steelblue"           
## [616] "steelblue1"           "steelblue2"           "steelblue3"          
## [619] "steelblue4"           "tan"                  "tan1"                
## [622] "tan2"                 "tan3"                 "tan4"                
## [625] "thistle"              "thistle1"             "thistle2"            
## [628] "thistle3"             "thistle4"             "tomato"              
## [631] "tomato1"              "tomato2"              "tomato3"             
## [634] "tomato4"              "turquoise"            "turquoise1"          
## [637] "turquoise2"           "turquoise3"           "turquoise4"          
## [640] "violet"               "violetred"            "violetred1"          
## [643] "violetred2"           "violetred3"           "violetred4"          
## [646] "wheat"                "wheat1"               "wheat2"              
## [649] "wheat3"               "wheat4"               "whitesmoke"          
## [652] "yellow"               "yellow1"              "yellow2"             
## [655] "yellow3"              "yellow4"              "yellowgreen"
grep("blue", colors(), value=T)   # Colors that have "blue" in the name
##  [1] "aliceblue"       "blue"            "blue1"           "blue2"          
##  [5] "blue3"           "blue4"           "blueviolet"      "cadetblue"      
##  [9] "cadetblue1"      "cadetblue2"      "cadetblue3"      "cadetblue4"     
## [13] "cornflowerblue"  "darkblue"        "darkslateblue"   "deepskyblue"    
## [17] "deepskyblue1"    "deepskyblue2"    "deepskyblue3"    "deepskyblue4"   
## [21] "dodgerblue"      "dodgerblue1"     "dodgerblue2"     "dodgerblue3"    
## [25] "dodgerblue4"     "lightblue"       "lightblue1"      "lightblue2"     
## [29] "lightblue3"      "lightblue4"      "lightskyblue"    "lightskyblue1"  
## [33] "lightskyblue2"   "lightskyblue3"   "lightskyblue4"   "lightslateblue" 
## [37] "lightsteelblue"  "lightsteelblue1" "lightsteelblue2" "lightsteelblue3"
## [41] "lightsteelblue4" "mediumblue"      "mediumslateblue" "midnightblue"   
## [45] "navyblue"        "powderblue"      "royalblue"       "royalblue1"     
## [49] "royalblue2"      "royalblue3"      "royalblue4"      "skyblue"        
## [53] "skyblue1"        "skyblue2"        "skyblue3"        "skyblue4"       
## [57] "slateblue"       "slateblue1"      "slateblue2"      "slateblue3"     
## [61] "slateblue4"      "steelblue"       "steelblue1"      "steelblue2"     
## [65] "steelblue3"      "steelblue4"

比對色、陰影

pal1 <- heat.colors(5, alpha = 1) #熱(heat)色板中五個顏色,不透明

plot(x=1:10, y=1:10, pch=19, cex=5, col=pal1)

pal2 <- rainbow(5, alpha=.5)  #彩虹色版的五個顏色,透明

plot(x=1:10, y=1:10, pch=19, cex=5, col=pal2)

生成自己的漸變

colorRampPalette:返回一個function,根據他生成多顏色

palf <- colorRampPalette(c("gray80", "dark red"))

plot(x=10:1, y=1:10, pch=19, cex=5, col=palf(10))

#增加透明度
palf <- colorRampPalette(c(rgb(1,1,1, .2),rgb(.8,0,0, .7)), alpha=TRUE)

plot(x=10:1, y=1:10, pch=19, cex=5, col=palf(10)) 

1.11 R troubleshooting

在R中容易犯的錯誤 - Capitalization:R區分大小寫 - Object class:物件的類別 - Package namespaces:不同套件含有相同名稱的函數。1.使用::來指定套件例如,A::blah / B::blah 2.裝一個前先卸載另一個(library / detch)