#install.packages("readr") #第一次使用需安裝
library(readr)#用library呼叫套件
#讀取資料,命名為"x"
x <- read.csv("strays.csv", stringsAsFactors = TRUE)
#查看資料結構
summary(x)
## id type gender size color age
## Min. : 26250 狗:1048 F:534 BIG :181 咖啡色: 13 ADULT:886
## 1st Qu.: 50182 貓: 34 M:548 MEDIUM:713 白色 : 26 CHILD:196
## Median :129335 SMALL :188 花色 : 88
## Mean :120020 虎斑色:104
## 3rd Qu.:179406 黃色 :249
## Max. :248935 黑色 :602
##
## county
## 新北市 :220
## 南投縣 :188
## 高雄市 :172
## 臺南市 : 97
## 臺北市 : 84
## 桃園市 : 74
## (Other):247
#重新命名欄位名稱
colnames(x) #檢視欄位名稱
## [1] "id" "type" "gender" "size" "color" "age" "county"
colnames(x) <- c("id", "type", "gender", "size", "color", "age", "country")
#問題:各縣市各有多少流浪動物?
table(x$country)#算次數
##
## 南投縣 嘉義市 嘉義縣 基隆市 宜蘭縣 屏東縣 彰化縣 新北市 新竹市 新竹縣 桃園市
## 188 2 1 15 3 40 4 220 63 6 74
## 澎湖縣 臺中市 臺北市 臺南市 臺東縣 花蓮縣 苗栗縣 金門縣 雲林縣 高雄市
## 15 11 84 97 3 2 3 49 30 172
t<-table(x$country)
barplot(t)
barplot(t, beside =T)

#問題:犬與貓的毛色分析
#次數分配表
table(x$type)
##
## 狗 貓
## 1048 34
table(x$color)
##
## 咖啡色 白色 花色 虎斑色 黃色 黑色
## 13 26 88 104 249 602
y <- table(x$type, x$color)
y
##
## 咖啡色 白色 花色 虎斑色 黃色 黑色
## 狗 13 26 75 93 246 595
## 貓 0 0 13 11 3 7
#畫分組長條圖
barplot(y)

barplot(y, beside =T)

#顏色表加上圖例與上色
rownames(y)
## [1] "狗" "貓"
label <- rownames(y)
label
## [1] "狗" "貓"
barplot(y,
beside = T,
legend.text =label,
col = c(26, 13))

#畫圓餅圖
y
##
## 咖啡色 白色 花色 虎斑色 黃色 黑色
## 狗 13 26 75 93 246 595
## 貓 0 0 13 11 3 7
d <- y[1,] # 狗資料
c <- y[2,] # 貓資料
d
## 咖啡色 白色 花色 虎斑色 黃色 黑色
## 13 26 75 93 246 595
c
## 咖啡色 白色 花色 虎斑色 黃色 黑色
## 0 0 13 11 3 7
# par()是圖形控制函數,mfrow = c(1,2)表示建立一個1x2的空間,用來呈現後續的圖
par(mfrow = c(1,2))
pie(d, main = "狗")
pie(c, main = "貓")

#畫圓餅圖並加上資料標籤
pie_category <- colnames(y)
pie_category
## [1] "咖啡色" "白色" "花色" "虎斑色" "黃色" "黑色"
d_label <- paste(pie_category, d, sep = "")
d_label
## [1] "咖啡色13" "白色26" "花色75" "虎斑色93" "黃色246" "黑色595"
c_label <- paste(pie_category, c, sep = "")
c_label
## [1] "咖啡色0" "白色0" "花色13" "虎斑色11" "黃色3" "黑色7"
par(mfrow = c(1,2))# c(1,2),表示建立一個1x2的空間,用來呈現後續的圖
pie(d, labels =d_label, main = "狗")
pie(c, labels =c_label, main = "貓" )

dev.off() #離開par()
## null device
## 1