# 周次:w7
# 任務:認識資料的結構
# 姓名:廖呈祐
# 日期:2021年03月17日
## 題組二 
# 1. 判斷全班同學體位狀況
# 請先下載google問卷結果
# 讓Rstudio cloud讀xlsx檔
#install.packages("xlsx")
#library(xlsx)
#data <- read.xlsx("psy.xlsx", 1, encoding ="UTF-8")
library(readxl)
data <- read_excel("psy.xlsx")
#View(data)
# 檢視資料檔案內容
str(data)
## tibble [18 × 19] (S3: tbl_df/tbl/data.frame)
##  $ 時間戳記                                                                                               : POSIXct[1:18], format: "2021-02-27 10:14:22" "2021-02-27 10:30:25" ...
##  $ 電子郵件地址                                                                                           : chr [1:18] "0803brian@gmail.com" "bbirbbira@gmail.com" "p7786071@gmail.com" "kd910518@gmail.com" ...
##  $ 姓名                                                                                                   : chr [1:18] "1130730408莊詠翔" "1130730404 陳芎宇" "1130730406 楊世宏" "1130730416 黄子騏" ...
##  $ 請問你的出生年月日                                                                                     : POSIXct[1:18], format: "2002-03-08" "2001-12-04" ...
##  $ 請問你的生理性別                                                                                       : chr [1:18] "男" "男" "男" "男" ...
##  $ 請問你的身高(公分)                                                                                     : num [1:18] 180 173 170 177 169 178 172 167 188 158 ...
##  $ 請問你的體重(公斤)                                                                                     : num [1:18] 60 62 69 65 64 78 72 63 100 53 ...
##  $ 請問你大約每週有幾天會使用IG (單位: 天數)                                                              : num [1:18] 6 4 1 7 7 7 6 7 7 7 ...
##  $ 在你有玩IG的那一天,你一整天大概玩多久?(以小時計算,請填數字。例如30分鐘,請填0.5小時,若3小時,則填3): num [1:18] 0.5 0.25 0.3 0.5 0.2 2 1 1 0.5 0.5 ...
##  $ 當在瀏覽IG時,你多常關注那些比你過得好的人?                                                            : chr [1:18] "經常" "有時" "有時" "有時" ...
##  $ 當在瀏覽IG時,你多常關注那些比你過得差的人?                                                            : chr [1:18] "有時" "完全沒有" "完全沒有" "有時" ...
##  $ 整體而言,你對於自己滿不滿意?                                                                         : chr [1:18] "普通" "普通" "普通" "滿意" ...
##  $ 整體而言,你對於你的社交生活滿不滿意?                                                                 : chr [1:18] "普通" "不滿意" "滿意" "滿意" ...
##  $ 整體而言,你對自己目前的健康狀況滿不滿意?                                                             : chr [1:18] "非常不滿意" "普通" "滿意" "滿意" ...
##  $ 整體而言,你對於你的生活滿不滿意?                                                                     : chr [1:18] "普通" "不滿意" "滿意" "滿意" ...
##  $ 請問你有心事的時候,經常找哪位同學聊聊                                                                 : chr [1:18] "1130730401張藝馨" "1130730404 陳芎宇" "1130730404 陳芎宇" "1130730414 蔡承軒" ...
##  $ 請問你缺錢的時候,經常找哪位同學借錢                                                                   : chr [1:18] "1130730406 楊世宏" "1130730404 陳芎宇" "1130730401張藝馨" "1130730402洪銘材" ...
##  $ 請用20個字以上描述你認為軍校生應具備的特質與能力                                                       : chr [1:18] "懂得變通,不能什麼都只聽上面的人說話,要有自己的想法,但也不能直接頂撞,要保護自己" "能夠服從上級命令,卻又不失自己的想法,不會盲目的服從" "我認為軍校生要勤奮自主,並且有靈活的思考方式。" "應該要能對自己的國家有認同感,培養國際局勢,並於在學期間規劃好未來生涯" ...
##  $ 請用20個字以上描述你的理想情人的標準與特質                                                             : chr [1:18] "長頭髮、可愛型的、稍微粘人但也不要太黏,160-170之間" "能夠了解我的,能夠體諒我的個性的,能夠聽我和陪我說話的" "能夠互相理解、尊重彼此的喜好、協助對方完成目標、視彼此為重要他人。" "我也沒什麼好描述的啦,條件又沒多好哪有資格要求東要求西,感覺對了就好反正也把不到" ...
# 檢視欄位名稱
names(data)
##  [1] "時間戳記"                                                                                               
##  [2] "電子郵件地址"                                                                                           
##  [3] "姓名"                                                                                                   
##  [4] "請問你的出生年月日"                                                                                     
##  [5] "請問你的生理性別"                                                                                       
##  [6] "請問你的身高(公分)"                                                                                     
##  [7] "請問你的體重(公斤)"                                                                                     
##  [8] "請問你大約每週有幾天會使用IG (單位: 天數)"                                                              
##  [9] "在你有玩IG的那一天,你一整天大概玩多久?(以小時計算,請填數字。例如30分鐘,請填0.5小時,若3小時,則填3)"
## [10] "當在瀏覽IG時,你多常關注那些比你過得好的人?"                                                            
## [11] "當在瀏覽IG時,你多常關注那些比你過得差的人?"                                                            
## [12] "整體而言,你對於自己滿不滿意?"                                                                         
## [13] "整體而言,你對於你的社交生活滿不滿意?"                                                                 
## [14] "整體而言,你對自己目前的健康狀況滿不滿意?"                                                             
## [15] "整體而言,你對於你的生活滿不滿意?"                                                                     
## [16] "請問你有心事的時候,經常找哪位同學聊聊"                                                                 
## [17] "請問你缺錢的時候,經常找哪位同學借錢"                                                                   
## [18] "請用20個字以上描述你認為軍校生應具備的特質與能力"                                                       
## [19] "請用20個字以上描述你的理想情人的標準與特質"
# 用英文重新命名欄位名稱
names(data)[1:19] <- c("time", "email", 
                       "name","birth",
                       "gender","height",
                       "weight","useig","usetime",
                       "up_com","down_com", 
                       "sat_self","sat_social",
                       "sat_health","sat_life",
                       "mate_talk","mate_money",
                       "cadet","lover")
names(data)
##  [1] "time"       "email"      "name"       "birth"      "gender"    
##  [6] "height"     "weight"     "useig"      "usetime"    "up_com"    
## [11] "down_com"   "sat_self"   "sat_social" "sat_health" "sat_life"  
## [16] "mate_talk"  "mate_money" "cadet"      "lover"
# 1. 將變項性別改成因素向量,且依男女排序
# 先檢視變項
data$gender
##  [1] "男" "男" "男" "男" "男" "男" "男" "男" "男" "女" "男" "男" "男" "女" "男"
## [16] "男" "女" "男"
class(data$gender)
## [1] "character"
# 用factor或as.factor函數進行轉換
data$gender <- factor(data$gender,
                      ordered=TRUE,
                      levels=c("男","女"))
data$gender
##  [1] 男 男 男 男 男 男 男 男 男 女 男 男 男 女 男 男 女 男
## Levels: 男 < 女
### 題組二 矩陣、陣列
# 建立一個名為my_mat的矩陣,含姓名、談心對象、借錢對象
names(data)
##  [1] "time"       "email"      "name"       "birth"      "gender"    
##  [6] "height"     "weight"     "useig"      "usetime"    "up_com"    
## [11] "down_com"   "sat_self"   "sat_social" "sat_health" "sat_life"  
## [16] "mate_talk"  "mate_money" "cadet"      "lover"
my_mate <- as.matrix(data[1:18,c(1,16:17)])
# 請問第5位同學的談心對象、借錢對象是誰?
my_mate[5,]
##                  time             mate_talk            mate_money 
## "2021-02-27 10:55:39"    "1130730401張藝馨"   "1130730406 楊世宏"
# 請問所有同學的借錢對象是誰?a$gender
### 題組三 資料框
# 檢視問卷(已是資料框形式)的資料內容
#view(data)
# 檢視資料框的資料結構
str(data)
## tibble [18 × 19] (S3: tbl_df/tbl/data.frame)
##  $ time      : POSIXct[1:18], format: "2021-02-27 10:14:22" "2021-02-27 10:30:25" ...
##  $ email     : chr [1:18] "0803brian@gmail.com" "bbirbbira@gmail.com" "p7786071@gmail.com" "kd910518@gmail.com" ...
##  $ name      : chr [1:18] "1130730408莊詠翔" "1130730404 陳芎宇" "1130730406 楊世宏" "1130730416 黄子騏" ...
##  $ birth     : POSIXct[1:18], format: "2002-03-08" "2001-12-04" ...
##  $ gender    : Ord.factor w/ 2 levels "男"<"女": 1 1 1 1 1 1 1 1 1 2 ...
##  $ height    : num [1:18] 180 173 170 177 169 178 172 167 188 158 ...
##  $ weight    : num [1:18] 60 62 69 65 64 78 72 63 100 53 ...
##  $ useig     : num [1:18] 6 4 1 7 7 7 6 7 7 7 ...
##  $ usetime   : num [1:18] 0.5 0.25 0.3 0.5 0.2 2 1 1 0.5 0.5 ...
##  $ up_com    : chr [1:18] "經常" "有時" "有時" "有時" ...
##  $ down_com  : chr [1:18] "有時" "完全沒有" "完全沒有" "有時" ...
##  $ sat_self  : chr [1:18] "普通" "普通" "普通" "滿意" ...
##  $ sat_social: chr [1:18] "普通" "不滿意" "滿意" "滿意" ...
##  $ sat_health: chr [1:18] "非常不滿意" "普通" "滿意" "滿意" ...
##  $ sat_life  : chr [1:18] "普通" "不滿意" "滿意" "滿意" ...
##  $ mate_talk : chr [1:18] "1130730401張藝馨" "1130730404 陳芎宇" "1130730404 陳芎宇" "1130730414 蔡承軒" ...
##  $ mate_money: chr [1:18] "1130730406 楊世宏" "1130730404 陳芎宇" "1130730401張藝馨" "1130730402洪銘材" ...
##  $ cadet     : chr [1:18] "懂得變通,不能什麼都只聽上面的人說話,要有自己的想法,但也不能直接頂撞,要保護自己" "能夠服從上級命令,卻又不失自己的想法,不會盲目的服從" "我認為軍校生要勤奮自主,並且有靈活的思考方式。" "應該要能對自己的國家有認同感,培養國際局勢,並於在學期間規劃好未來生涯" ...
##  $ lover     : chr [1:18] "長頭髮、可愛型的、稍微粘人但也不要太黏,160-170之間" "能夠了解我的,能夠體諒我的個性的,能夠聽我和陪我說話的" "能夠互相理解、尊重彼此的喜好、協助對方完成目標、視彼此為重要他人。" "我也沒什麼好描述的啦,條件又沒多好哪有資格要求東要求西,感覺對了就好反正也把不到" ...
# 資料框的欄位名稱為何
names(data)
##  [1] "time"       "email"      "name"       "birth"      "gender"    
##  [6] "height"     "weight"     "useig"      "usetime"    "up_com"    
## [11] "down_com"   "sat_self"   "sat_social" "sat_health" "sat_life"  
## [16] "mate_talk"  "mate_money" "cadet"      "lover"
# 資料的觀察值數量
nrow(data)
## [1] 18
# 資料預覽
head(data)
## # A tibble: 6 x 19
##   time                email name  birth               gender height weight useig
##   <dttm>              <chr> <chr> <dttm>              <ord>   <dbl>  <dbl> <dbl>
## 1 2021-02-27 10:14:22 0803… 1130… 2002-03-08 00:00:00 男        180     60     6
## 2 2021-02-27 10:30:25 bbir… 1130… 2001-12-04 00:00:00 男        173     62     4
## 3 2021-02-27 10:31:47 p778… 1130… 2001-10-15 00:00:00 男        170     69     1
## 4 2021-02-27 10:50:07 kd91… 1130… 2002-05-18 00:00:00 男        177     65     7
## 5 2021-02-27 10:55:39 lcy2… 1130… 2001-09-05 00:00:00 男        169     64     7
## 6 2021-02-27 10:56:57 bria… 1130… 2001-04-21 00:00:00 男        178     78     7
## # … with 11 more variables: usetime <dbl>, up_com <chr>, down_com <chr>,
## #   sat_self <chr>, sat_social <chr>, sat_health <chr>, sat_life <chr>,
## #   mate_talk <chr>, mate_money <chr>, cadet <chr>, lover <chr>
tail(data)
## # A tibble: 6 x 19
##   time                email name  birth               gender height weight useig
##   <dttm>              <chr> <chr> <dttm>              <ord>   <dbl>  <dbl> <dbl>
## 1 2021-02-27 19:07:45 eric… 1130… 2002-01-21 00:00:00 男        176     82     5
## 2 2021-02-27 23:08:26 anne… 1130… 2001-12-21 00:00:00 女        164     48     7
## 3 2021-03-03 08:05:26 bens… 1130… 2002-08-10 00:00:00 男        170     53     7
## 4 2021-03-03 08:57:14 tzuy… 1130… 2002-08-17 00:00:00 男        186     80     5
## 5 2021-03-03 08:58:34 gqia… 1130… 2002-03-26 00:00:00 女        165     59     7
## 6 2021-03-03 08:58:34 fena… 1130… 2002-03-30 00:00:00 男        176     72     5
## # … with 11 more variables: usetime <dbl>, up_com <chr>, down_com <chr>,
## #   sat_self <chr>, sat_social <chr>, sat_health <chr>, sat_life <chr>,
## #   mate_talk <chr>, mate_money <chr>, cadet <chr>, lover <chr>
# 請將變數"軍校生應具備的特質"的內容印出來
data$cadet
##  [1] "懂得變通,不能什麼都只聽上面的人說話,要有自己的想法,但也不能直接頂撞,要保護自己"
##  [2] "能夠服從上級命令,卻又不失自己的想法,不會盲目的服從"                              
##  [3] "我認為軍校生要勤奮自主,並且有靈活的思考方式。"                                    
##  [4] "應該要能對自己的國家有認同感,培養國際局勢,並於在學期間規劃好未來生涯"            
##  [5] "重視團隊合作,有持續學習的企圖心,對自己的生活負責,且行事認真不貪圖方便"          
##  [6] "我認為軍校生應該具有處理事情的應變能力以及抗壓性"                                  
##  [7] "軍校我覺得要養成獨立思考的能力,並且觀察外界環境變化去做應對進退"                  
##  [8] "忠誠僕實 用心致志 團結合作 不菸不嚼檳榔 不輕易飲酒 隨心所欲 不逾矩"                
##  [9] "外表嚴肅內心輕鬆 能收能放台面上跟台面下分的清楚可以讀懂氣氛"                       
## [10] "我認為軍校生應具備誠實,勇於承認錯誤並改進且對於自己不擅長的事務勇於學習"          
## [11] "誠實榮譽守時守紀律會玩也懂得收心待人處事的態度和善捍衛國家堅守崗位"                
## [12] "服從忍耐 刻苦耐勞 積極向學 勤奮向上 熱心助人"                                      
## [13] "領袖才能和統御能力是必備的,我認為還需要具備同理心,知道底下官兵的需求"            
## [14] "愛國,體力好,忍耐,服從,沈著,機警,勇敢,不怕死,不怕難,積極,時間管理"        
## [15] "誠實並將自己該做的事做好不用他人提醒不用他人擔心"                                  
## [16] "霸氣外露 注重細節 做事情要有條理 不要亂搞學弟妹"                                   
## [17] "能夠安排利用時間 獨立思考的能力 高抗壓性 負責任 對自我的肯定"                      
## [18] "獨立自主,上進心,社交能力,成績可,體能好,認真負責,獨立思考,獨立批判能力"
# 另一種做法
#data[,18]
# 請將第7至12位同學的"生日"印出來
data[7:12,4]
## # A tibble: 6 x 1
##   birth              
##   <dttm>             
## 1 2002-07-18 00:00:00
## 2 2001-11-11 00:00:00
## 3 2002-03-30 00:00:00
## 4 2002-04-23 00:00:00
## 5 2001-10-06 00:00:00
## 6 2001-10-29 00:00:00
# 建立新資料框df,刪除原本資料第1、2欄位的變數
# 另一種做法
df <- subset(data, select= -c(1:2))
names(data)
##  [1] "time"       "email"      "name"       "birth"      "gender"    
##  [6] "height"     "weight"     "useig"      "usetime"    "up_com"    
## [11] "down_com"   "sat_self"   "sat_social" "sat_health" "sat_life"  
## [16] "mate_talk"  "mate_money" "cadet"      "lover"
# 題組四 清單
# 1. 我們已經建立好幾個物件my_mat, data, df
# 請收納進一個清單中叫做 all

# 請將my_mat矩陣叫出

# 將清單命名

# 請將df資料框叫出