#0301上課程式碼:

#資料(data)、值(valus)、變數(varible)、物件(object)

# R 是以物件導向為主的程式語言, 在R中每一樣 “東西”, 都可視為 “物件”(object), 
##一、R語言資料集合:
#1.向量(vector)
#2.清單(list)
#3.矩陣(matrix)
#4.陣列(array)
#5.因子(factor)
#6.資料框(dataframe)
# 資料分析基本上是 :產生資料物件、命名、使用函式對物件運算操作


#建立向量資料====
id <- c("001", "002", "003", "004",  "005")
name <- c("superman", "batman", "spiderman", "wolverine", "wonderwoman")
height <- c(190, 188, 178, 150, 183)
weight <- c(102, 95, 76, 88, 59)
gender <- c("Male","Male","Male","Male" ,"Female")


#二、R 的最基本物件是向量====
# 向量是由包含相同 “模式” 的元素 (element) 組成,
# 向量物件的基本元素的類型(basic mode) 主要分成
# 六大向量(vector)類型

# 1.數值向量(numeric):包含 "integer", 整數型向量  與 "double", 倍精確度型向量。
# 2.整數向量(integer)
# 3.文字向量(character) 
# 4.邏輯值向量(logical)
# 5.日期向量(Date)
# 6.日期時間向量(POSIXct)


#用class()查詢資料類型====

class(name)
## [1] "character"
class(height)
## [1] "numeric"
class(gender)
## [1] "character"
class(id)   
## [1] "character"
class(height)
## [1] "numeric"
q <- height > 170
q
## [1]  TRUE  TRUE  TRUE FALSE  TRUE
class(q)
## [1] "logical"
#str()查看資料結構====
#summary()查看變數統計量
summary(name)
##    Length     Class      Mode 
##         5 character character
summary(height)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   150.0   178.0   183.0   177.8   188.0   190.0
#用[ ]取出向量資料
name
## [1] "superman"    "batman"      "spiderman"   "wolverine"   "wonderwoman"
name[2]
## [1] "batman"
name[3:5]
## [1] "spiderman"   "wolverine"   "wonderwoman"
name[-1]
## [1] "batman"      "spiderman"   "wolverine"   "wonderwoman"
name[-c(1,3,5)]
## [1] "batman"    "wolverine"
height
## [1] 190 188 178 150 183
height[height > 170]
## [1] 190 188 178 183
#將向量資料組合為data frame(數據框) 
heroes <- data.frame(id,gender, height, weight, name)
#顯示在console區
heroes
##    id gender height weight        name
## 1 001   Male    190    102    superman
## 2 002   Male    188     95      batman
## 3 003   Male    178     76   spiderman
## 4 004   Male    150     88   wolverine
## 5 005 Female    183     59 wonderwoman
#看資料結構
str(heroes)
## 'data.frame':    5 obs. of  5 variables:
##  $ id    : chr  "001" "002" "003" "004" ...
##  $ gender: chr  "Male" "Male" "Male" "Male" ...
##  $ height: num  190 188 178 150 183
##  $ weight: num  102 95 76 88 59
##  $ name  : chr  "superman" "batman" "spiderman" "wolverine" ...
#看摘要
summary(heroes)
##       id               gender              height          weight   
##  Length:5           Length:5           Min.   :150.0   Min.   : 59  
##  Class :character   Class :character   1st Qu.:178.0   1st Qu.: 76  
##  Mode  :character   Mode  :character   Median :183.0   Median : 88  
##                                        Mean   :177.8   Mean   : 84  
##                                        3rd Qu.:188.0   3rd Qu.: 95  
##                                        Max.   :190.0   Max.   :102  
##      name          
##  Length:5          
##  Class :character  
##  Mode  :character  
##                    
##                    
## 
##存成.RData格式====
save(heroes, file = "heroes.RData" )#請填入"heroes.RData"
#清空物件,然後再讀取一次.RData
load("heroes.RData")

###用[ ] 取出data frame中的資料, 其中[ 列, 欄]====
heroes[2, ]#取出第二列資料
##    id gender height weight   name
## 2 002   Male    188     95 batman
heroes[,2]#取出第二欄資料
## [1] "Male"   "Male"   "Male"   "Male"   "Female"
heroes[5,]##取出第五列
##    id gender height weight        name
## 5 005 Female    183     59 wonderwoman
heroes[3,4]##取出第三列第四欄資料
## [1] 76
#用欄位名稱取出某欄的資料,有兩種方法:
heroes[["name"]]
## [1] "superman"    "batman"      "spiderman"   "wolverine"   "wonderwoman"
##或是
heroes$name
## [1] "superman"    "batman"      "spiderman"   "wolverine"   "wonderwoman"
heroes$height
## [1] 190 188 178 150 183
mean(heroes$height)
## [1] 177.8
heroes[1:3,]
##    id gender height weight      name
## 1 001   Male    190    102  superman
## 2 002   Male    188     95    batman
## 3 003   Male    178     76 spiderman
heroes[heroes$name=="spiderman",]#找出名字為"spiderman"的所有資料
##    id gender height weight      name
## 3 003   Male    178     76 spiderman
heroes[heroes$name!="spiderman",]#找出除了"spiderman"以外的所有資料
##    id gender height weight        name
## 1 001   Male    190    102    superman
## 2 002   Male    188     95      batman
## 4 004   Male    150     88   wolverine
## 5 005 Female    183     59 wonderwoman
heroes[heroes$height>180,]#找出身高大於180的所有資料
##    id gender height weight        name
## 1 001   Male    190    102    superman
## 2 002   Male    188     95      batman
## 5 005 Female    183     59 wonderwoman
heroes$height
## [1] 190 188 178 150 183
sort(heroes$height)#排序由小到大
## [1] 150 178 183 188 190
sort(heroes$height, decreasing =TRUE )#排序由大到小
## [1] 190 188 183 178 150
#畫圖一
barplot(sort(heroes$height, decreasing = T))

#畫圖二
barplot(sort(heroes$height, decreasing = T),#要畫圖的向量資料
        main = "Heroes", #大標題
        sub = "by Peter Liu", #次標題
        names.arg =  c("superman", "batman", "spiderman", "wonderwoman", "wolverine"), #資料名稱
        xlab = "name", #x軸標籤
        ylab = "height", #y軸標籤
        col = c(6:10))#使用內建第6至10號顏色, colors(查詢R內建顏色)

# 亞洲四小龍(Four Asian Tigers)====
# https://zh.wikipedia.org/wiki/%E4%BA%9A%E6%B4%B2%E5%9B%9B%E5%B0%8F%E9%BE%99
#建立資料
nation <- c("Korea","Taiwan","Hong kong","Singapore")
growth <- c(0.36, 0.28, 0.83, 1.40 )
#合併nation和growth為data frame
data <- data.frame(nation, growth)
#畫長條圖
barplot(sort(data$growth, decreasing = T),
        main = "data",
        sub = "by Cloudy Hong",
        names.arg = c("Singapore","Hong kong","Korea","Taiwan"),
        xlab = "nation",
        ylab = "growth", 
        col = c(32: 35))

###資料組合與切割====

df <- iris
#檢視資料
#查看完整資料
head(df)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
#查看資料結構
str(df)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
#查看資料摘要
summary(df)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 
#查看資料欄位名稱
names(df)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"
#查看第三欄,第1到10筆資料
df[1:10,3]
##  [1] 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5
#查看欄位名稱為(Species)的資料
df$Species
##   [1] setosa     setosa     setosa     setosa     setosa     setosa    
##   [7] setosa     setosa     setosa     setosa     setosa     setosa    
##  [13] setosa     setosa     setosa     setosa     setosa     setosa    
##  [19] setosa     setosa     setosa     setosa     setosa     setosa    
##  [25] setosa     setosa     setosa     setosa     setosa     setosa    
##  [31] setosa     setosa     setosa     setosa     setosa     setosa    
##  [37] setosa     setosa     setosa     setosa     setosa     setosa    
##  [43] setosa     setosa     setosa     setosa     setosa     setosa    
##  [49] setosa     setosa     versicolor versicolor versicolor versicolor
##  [55] versicolor versicolor versicolor versicolor versicolor versicolor
##  [61] versicolor versicolor versicolor versicolor versicolor versicolor
##  [67] versicolor versicolor versicolor versicolor versicolor versicolor
##  [73] versicolor versicolor versicolor versicolor versicolor versicolor
##  [79] versicolor versicolor versicolor versicolor versicolor versicolor
##  [85] versicolor versicolor versicolor versicolor versicolor versicolor
##  [91] versicolor versicolor versicolor versicolor versicolor versicolor
##  [97] versicolor versicolor versicolor versicolor virginica  virginica 
## [103] virginica  virginica  virginica  virginica  virginica  virginica 
## [109] virginica  virginica  virginica  virginica  virginica  virginica 
## [115] virginica  virginica  virginica  virginica  virginica  virginica 
## [121] virginica  virginica  virginica  virginica  virginica  virginica 
## [127] virginica  virginica  virginica  virginica  virginica  virginica 
## [133] virginica  virginica  virginica  virginica  virginica  virginica 
## [139] virginica  virginica  virginica  virginica  virginica  virginica 
## [145] virginica  virginica  virginica  virginica  virginica  virginica 
## Levels: setosa versicolor virginica
#修改欄位名稱, 請填入"花萼長", "花萼寬", "花瓣長", "花瓣寬", "品種")
names(df) <-c("花萼長", "花萼寬", "花瓣長", "花瓣寬", "品種")
  #找出"花萼長"大於等於7的所有資料
  df[df$花萼長>7, ]
##     花萼長 花萼寬 花瓣長 花瓣寬      品種
## 103    7.1    3.0    5.9    2.1 virginica
## 106    7.6    3.0    6.6    2.1 virginica
## 108    7.3    2.9    6.3    1.8 virginica
## 110    7.2    3.6    6.1    2.5 virginica
## 118    7.7    3.8    6.7    2.2 virginica
## 119    7.7    2.6    6.9    2.3 virginica
## 123    7.7    2.8    6.7    2.0 virginica
## 126    7.2    3.2    6.0    1.8 virginica
## 130    7.2    3.0    5.8    1.6 virginica
## 131    7.4    2.8    6.1    1.9 virginica
## 132    7.9    3.8    6.4    2.0 virginica
## 136    7.7    3.0    6.1    2.3 virginica
#計算"花萼長"大於等於7的資料有幾筆?
nrow(df[df$花萼長>7, ])
## [1] 12
#查看「品種」欄位為setosa資料
df[df $品種=="setosa",]
##    花萼長 花萼寬 花瓣長 花瓣寬   品種
## 1     5.1    3.5    1.4    0.2 setosa
## 2     4.9    3.0    1.4    0.2 setosa
## 3     4.7    3.2    1.3    0.2 setosa
## 4     4.6    3.1    1.5    0.2 setosa
## 5     5.0    3.6    1.4    0.2 setosa
## 6     5.4    3.9    1.7    0.4 setosa
## 7     4.6    3.4    1.4    0.3 setosa
## 8     5.0    3.4    1.5    0.2 setosa
## 9     4.4    2.9    1.4    0.2 setosa
## 10    4.9    3.1    1.5    0.1 setosa
## 11    5.4    3.7    1.5    0.2 setosa
## 12    4.8    3.4    1.6    0.2 setosa
## 13    4.8    3.0    1.4    0.1 setosa
## 14    4.3    3.0    1.1    0.1 setosa
## 15    5.8    4.0    1.2    0.2 setosa
## 16    5.7    4.4    1.5    0.4 setosa
## 17    5.4    3.9    1.3    0.4 setosa
## 18    5.1    3.5    1.4    0.3 setosa
## 19    5.7    3.8    1.7    0.3 setosa
## 20    5.1    3.8    1.5    0.3 setosa
## 21    5.4    3.4    1.7    0.2 setosa
## 22    5.1    3.7    1.5    0.4 setosa
## 23    4.6    3.6    1.0    0.2 setosa
## 24    5.1    3.3    1.7    0.5 setosa
## 25    4.8    3.4    1.9    0.2 setosa
## 26    5.0    3.0    1.6    0.2 setosa
## 27    5.0    3.4    1.6    0.4 setosa
## 28    5.2    3.5    1.5    0.2 setosa
## 29    5.2    3.4    1.4    0.2 setosa
## 30    4.7    3.2    1.6    0.2 setosa
## 31    4.8    3.1    1.6    0.2 setosa
## 32    5.4    3.4    1.5    0.4 setosa
## 33    5.2    4.1    1.5    0.1 setosa
## 34    5.5    4.2    1.4    0.2 setosa
## 35    4.9    3.1    1.5    0.2 setosa
## 36    5.0    3.2    1.2    0.2 setosa
## 37    5.5    3.5    1.3    0.2 setosa
## 38    4.9    3.6    1.4    0.1 setosa
## 39    4.4    3.0    1.3    0.2 setosa
## 40    5.1    3.4    1.5    0.2 setosa
## 41    5.0    3.5    1.3    0.3 setosa
## 42    4.5    2.3    1.3    0.3 setosa
## 43    4.4    3.2    1.3    0.2 setosa
## 44    5.0    3.5    1.6    0.6 setosa
## 45    5.1    3.8    1.9    0.4 setosa
## 46    4.8    3.0    1.4    0.3 setosa
## 47    5.1    3.8    1.6    0.2 setosa
## 48    4.6    3.2    1.4    0.2 setosa
## 49    5.3    3.7    1.5    0.2 setosa
## 50    5.0    3.3    1.4    0.2 setosa
#將[品種]欄位中為setosa資料,另存成一個物件(df_setosa),
df_setosa <- df[df $品種=="setosa",]
#將物件(df_setosa)另存為.RData格式
save(df_setosa, file = "df_setosa.RData")


#測驗====
#讀取heroes_stats.RData
load("heroes_stats.RData")
#檢視資料
#查看完整資料
head(heroes_stats)
##          Name Alignment Intelligence Strength Speed Durability Power Combat
## 1     3-D Man      good           50       31    43         32    25     52
## 2      A-Bomb      good           38      100    17         80    17     64
## 3  Abe Sapien      good           88       14    35         42    35     85
## 4    Abin Sur      good           50       90    53         64    84     65
## 5 Abomination       bad           63       80    53         90    55     95
## 6     Abraxas       bad           88      100    83         99   100     56
##   Total
## 1   233
## 2   316
## 3   299
## 4   406
## 5   436
## 6   526
#查看資料結構
str(heroes_stats)
## Classes 'spec_tbl_df', 'tbl_df', 'tbl' and 'data.frame': 428 obs. of  9 variables:
##  $ Name        : chr  "3-D Man" "A-Bomb" "Abe Sapien" "Abin Sur" ...
##  $ Alignment   : Factor w/ 3 levels "bad","good","neutral": 2 2 2 2 1 1 2 2 2 1 ...
##  $ Intelligence: num  50 38 88 50 63 88 63 10 75 50 ...
##  $ Strength    : num  31 100 14 90 80 100 10 8 28 85 ...
##  $ Speed       : num  43 17 35 53 53 83 12 13 38 100 ...
##  $ Durability  : num  32 80 42 64 90 99 100 5 80 85 ...
##  $ Power       : num  25 17 35 84 55 100 71 5 72 100 ...
##  $ Combat      : num  52 64 85 65 95 56 64 20 95 40 ...
##  $ Total       : num  233 316 299 406 436 526 320 61 388 460 ...
##  - attr(*, "spec")=List of 3
##   ..$ cols   :List of 9
##   .. ..$ Name        : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ Alignment   : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
##   .. ..$ Intelligence: list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ Strength    : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ Speed       : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ Durability  : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ Power       : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ Combat      : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   .. ..$ Total       : list()
##   .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
##   ..$ default: list()
##   .. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
##   ..$ delim  : chr ","
##   ..- attr(*, "class")= chr "col_spec"
##  - attr(*, "problems")=<externalptr>
#查看資料摘要
summary(heroes_stats)
##      Name             Alignment    Intelligence       Strength     
##  Length:428         bad    :121   Min.   :  6.00   Min.   :  4.00  
##  Class :character   good   :296   1st Qu.: 50.00   1st Qu.: 10.00  
##  Mode  :character   neutral: 11   Median : 63.00   Median : 32.00  
##                                   Mean   : 62.69   Mean   : 40.78  
##                                   3rd Qu.: 75.00   3rd Qu.: 73.50  
##                                   Max.   :113.00   Max.   :100.00  
##      Speed          Durability         Power            Combat      
##  Min.   :  8.00   Min.   :  5.00   Min.   :  5.00   Min.   :  6.00  
##  1st Qu.: 23.00   1st Qu.: 28.00   1st Qu.: 34.00   1st Qu.: 42.00  
##  Median : 33.00   Median : 58.00   Median : 57.50   Median : 64.00  
##  Mean   : 38.36   Mean   : 59.00   Mean   : 57.06   Mean   : 60.76  
##  3rd Qu.: 50.00   3rd Qu.: 89.25   3rd Qu.: 75.25   3rd Qu.: 80.00  
##  Max.   :100.00   Max.   :120.00   Max.   :100.00   Max.   :101.00  
##      Total      
##  Min.   : 61.0  
##  1st Qu.:240.5  
##  Median :306.0  
##  Mean   :318.7  
##  3rd Qu.:384.5  
##  Max.   :581.0
#查看資料欄位名稱
names(heroes_stats)
## [1] "Name"         "Alignment"    "Intelligence" "Strength"     "Speed"       
## [6] "Durability"   "Power"        "Combat"       "Total"
#查看第一、二、九欄,第1到5筆資料
heroes_stats[1:5, c(1,2,9)]
##          Name Alignment Total
## 1     3-D Man      good   233
## 2      A-Bomb      good   316
## 3  Abe Sapien      good   299
## 4    Abin Sur      good   406
## 5 Abomination       bad   436
#查看欄位名稱為Alignment的資料
heroes_stats$Alignment
##   [1] good    good    good    good    bad     bad     good    good    good   
##  [10] bad     good    good    bad     good    good    good    bad     good   
##  [19] good    bad     bad     good    good    good    good    bad     good   
##  [28] good    good    good    good    good    bad     good    bad     good   
##  [37] good    good    good    good    good    good    good    good    good   
##  [46] good    good    good    good    bad     good    good    good    neutral
##  [55] bad     good    good    good    good    bad     good    good    bad    
##  [64] bad     good    good    good    bad     bad     bad     good    good   
##  [73] good    good    good    bad     good    bad     good    good    good   
##  [82] bad     good    good    good    good    good    good    bad     good   
##  [91] good    good    bad     bad     good    good    good    good    good   
## [100] good    bad     good    good    good    good    good    good    bad    
## [109] good    good    good    good    neutral bad     good    neutral bad    
## [118] bad     good    good    bad     good    good    good    bad     bad    
## [127] bad     good    bad     good    bad     good    bad     good    good   
## [136] bad     bad     good    bad     bad     good    good    good    good   
## [145] good    good    good    good    good    good    good    bad     neutral
## [154] good    good    bad     good    bad     bad     bad     good    good   
## [163] good    bad     bad     good    good    good    good    bad     good   
## [172] good    good    good    good    good    good    good    good    good   
## [181] good    good    good    good    bad     good    good    good    good   
## [190] good    good    good    bad     good    good    good    good    good   
## [199] good    good    good    good    bad     good    good    neutral bad    
## [208] good    bad     bad     good    good    bad     good    bad     bad    
## [217] good    bad     bad     good    bad     good    bad     good    good   
## [226] bad     bad     bad     bad     bad     good    good    good    bad    
## [235] good    bad     good    bad     neutral good    good    bad     good   
## [244] good    good    bad     good    good    bad     good    good    good   
## [253] bad     good    bad     good    good    good    good    good    good   
## [262] good    bad     bad     bad     good    good    good    bad     bad    
## [271] good    good    good    good    bad     bad     good    good    good   
## [280] good    good    good    good    good    good    good    good    good   
## [289] bad     good    good    bad     good    good    good    good    bad    
## [298] bad     good    good    bad     good    bad     good    good    good   
## [307] bad     good    neutral good    neutral good    bad     good    bad    
## [316] good    bad     bad     bad     good    good    good    good    good   
## [325] good    good    bad     good    neutral good    good    bad     good   
## [334] good    bad     bad     bad     good    good    good    good    good   
## [343] good    bad     good    good    good    good    bad     bad     bad    
## [352] good    good    good    bad     good    good    good    good    good   
## [361] good    good    good    good    good    good    good    good    good   
## [370] good    good    good    bad     good    good    bad     bad     good   
## [379] good    bad     good    neutral good    good    good    good    good   
## [388] good    bad     good    bad     neutral good    good    bad     good   
## [397] bad     bad     bad     bad     bad     bad     good    good    good   
## [406] bad     bad     good    good    bad     good    good    good    good   
## [415] bad     good    good    good    good    good    good    good    good   
## [424] good    good    good    good    bad    
## Levels: bad good neutral
#找出"Power"大於95的所有資料
heroes_stats[heroes_stats$Power >= 95, ]
##                  Name Alignment Intelligence Strength Speed Durability Power
## 6             Abraxas       bad           88      100    83         99   100
## 10         Air-Walker       bad           50       85   100         85   100
## 11         Alan Scott      good           63       80    23         90    98
## 13              Amazo       bad           75      100   100        100   100
## 20       Anti-Monitor       bad           88       90    38         90   100
## 21         Apocalypse       bad          100      100    33        100   100
## 46      Beta Ray Bill      good           63       80    35         95   100
## 47           Beyonder      good           88      100    23        100   100
## 54            Bizarro   neutral           75       95   100        100    95
## 56         Black Bolt      good           75       67   100         84   100
## 72    Blue Beetle III      good           50       34    58         80    97
## 81              Cable      good           88       48    23         56   100
## 101   Cyborg Superman       bad           75       93    92        100   100
## 108          Darkseid       bad           88      100    23        100   100
## 112           Deadman      good           50       10    33        100   100
## 113          Deadpool   neutral           50       15    30        100   100
## 122       Doctor Fate      good           81       16    25         80   100
## 123    Doctor Strange      good          100       10    12         84   100
## 125          Doomsday       bad           88       80    67        120   100
## 127          Dormammu       bad           88       95    83        100   100
## 128      Dr Manhattan      good           88       32    42         95   100
## 137            Exodus       bad           63       81    28         28   100
## 139     Fallen One II       bad           88       85    83        100   100
## 146         Firestorm      good           50       53    58         56   100
## 153          Galactus   neutral          100      100    83        100   100
## 161              Goku      good           56      100    75         90   100
## 167       Guy Gardner      good           38       80    27         64    97
## 168        Hal Jordan      good           63       90    53         64   100
## 187            Iceman      good           63       32    53        100   100
## 192          Iron Man      good          100       85    58         85   100
## 197         Jean Grey      good          100       80    67        100   100
## 210          Kevin 11       bad           25        7    12         14   100
## 214           Kilowog      good           81       90    53         42   100
## 229              Lobo       bad           88       83    35        100    95
## 238             Magus       bad           88      100    70         99   100
## 240         Man-Thing      good           50       32     8        100    98
## 242          Mandarin       bad          100       28    23         28    99
## 243 Martian Manhunter      good          100      100    96        100   100
## 244       Marvel Girl      good           63       85    47         42   100
## 253          Mephisto       bad           88       85    35         95   100
## 261      Miss Martian      good           63       85    58        100   100
## 264   Mister Mxyzptlk       bad          113       10    12         14   100
## 279    Naruto Uzumaki      good           50       80    32         80   100
## 286              Nova      good          100       85    67        101   100
## 287              Nova      good           38       60   100        100   100
## 288         Offspring      good           50       10    35         99   100
## 289         Onslaught       bad           88       85    47        100   100
## 295           Phoenix      good          100       80    67        100   100
## 296       Plastic Man      good           50       63    23        100   100
## 338            Sentry      good           75       80    58         84    97
## 339       Shadow King      good           75       12    27        100   100
## 347     Silver Surfer      good           63      100    84        101   100
## 349          Sinestro       bad           75       80    53         64   100
## 358             Spawn      good           75       60    50         90   100
## 364          Stardust      good           88       85   100        110   100
## 373    Superboy-Prime       bad           94      100   100        100   100
## 380            Thanos       bad           88      100    17        100   100
## 384              Thor      good           69      100    92        100   100
## 385         Thor Girl      good           75       83    70         84   100
## 397            Ultron       bad           88       83    42        100   100
## 408       War Machine      good           63       80    63        100   100
## 413           Watcher      good          100       80    67         89   100
## 427           Zatanna      good           75       10    23         28   100
##     Combat Total
## 6       56   526
## 10      40   460
## 11      32   386
## 13     100   575
## 20      90   496
## 21      60   493
## 46      84   457
## 47      56   467
## 54      85   550
## 56      56   482
## 72      30   349
## 81      80   395
## 101     80   540
## 108     95   506
## 112     42   335
## 113    100   395
## 122     50   352
## 123     60   366
## 125     90   545
## 127     80   546
## 128     42   399
## 137     70   370
## 139     56   512
## 146     42   359
## 153     70   553
## 161    100   521
## 167     64   370
## 168     56   426
## 187     64   412
## 192     64   492
## 197     70   517
## 210     40   198
## 214     80   446
## 229     85   486
## 238     74   531
## 240     40   328
## 242     95   373
## 243     85   581
## 244     80   417
## 253     42   445
## 261     45   451
## 264     28   277
## 279    100   442
## 286     85   538
## 287     25   423
## 288     56   350
## 289     85   505
## 295     70   517
## 296     56   392
## 338     54   448
## 339     75   389
## 347     32   480
## 349     56   428
## 358     95   470
## 364     85   568
## 373     85   579
## 380     80   485
## 384     85   546
## 385     70   482
## 397     64   477
## 408     85   491
## 413     56   492
## 427     56   292
#計算""Power"大於95的的資料有幾筆?
nrow(heroes_stats[heroes_stats$Power >= 95, ])
## [1] 63
#修改欄位名稱為中文
names(heroes_stats) <- c("姓名","陣營", "智力","體力","速度","耐力","力量","戰鬥", "總和")
#查看欄位名稱為Alignment的資料
heroes_stats$Alignment
## NULL
#查看[Alignment]欄位中為good資料
heroes_stats[heroes_stats$Alignment == "good", ]
## [1] 姓名 陣營 智力 體力 速度 耐力 力量 戰鬥 總和
## <0 rows> (or 0-length row.names)
#將[Alignment]欄位中為good資料,另存成一個物件(heroes_good),
heroes_good <- heroes_stats[heroes_stats$Alignment == "good", ]
#將物件(heroes_good)另存為.RData格式
save(heroes_good, file = "heroes_good.RData")
#[Name]欄位中有"man"的hero
heroes_stats$姓名[grepl("man", heroes_stats$姓名) ]
##  [1] "Aquaman"          "Batman"           "Batman II"        "Catwoman"        
##  [5] "Cyborg Superman"  "Darkman"          "Deadman"          "Human Torch"     
##  [9] "Iceman"           "Invisible Woman"  "Matt Parkman"     "Sandman"         
## [13] "Spider-Woman"     "Spider-Woman III" "Superman"         "Wonder Woman"
#請選擇五個超級英雄,以長條圖呈現他們的綜合能力值(Total)
five_heroes <- c(600, 500, 400, 300, 200)
barplot(five_heroes,
        names.arg = c("Aquaman","Batman","Batman II","Catwoman","Cyborg Superman"),
        col = c(7:11))