# 周次:w7
# 任務:認識資料結構
# 姓名:高千琇
# 日期:2021年03月17日
# 請先下載google問卷結果
# 讓Rstudio cloud讀xlsx檔
# install.packages("readxl")
# library(readxl)
# data <- read_excel("psy.xlsx")
# View(data)
# 另一種做法
# install.packages("readxl")
# install.packages("xlsx") #這個cloud也適用
library(xlsx)
data <- read.xlsx("psy.xlsx", 1, encoding = "UTF-8")
# 檢視資料檔案內容
#View(data)
str(data)
## 'data.frame': 18 obs. of 19 variables:
## $ 時間戳記 : POSIXct, format: "2021-02-27 10:14:22" "2021-02-27 10:30:25" ...
## $ 電子郵件地址 : chr "0803brian@gmail.com" "bbirbbira@gmail.com" "p7786071@gmail.com" "kd910518@gmail.com" ...
## $ 姓名 : chr "1130730408莊詠翔" "1130730404 陳芎宇" "1130730406 楊世宏" "1130730416 黄子騏" ...
## $ 請問你的出生年月日 : Date, format: "2002-03-08" "2001-12-04" ...
## $ 請問你的生理性別 : chr "男" "男" "男" "男" ...
## $ 請問你的身高.公分. : num 180 173 170 177 169 178 172 167 188 158 ...
## $ 請問你的體重.公斤. : num 60 62 69 65 64 78 72 63 100 53 ...
## $ 請問你大約每週有幾天會使用IG..單位..天數. : num 6 4 1 7 7 7 6 7 7 7 ...
## $ 在你有玩IG的那一天.你一整天大概玩多久..以小時計算.請填數字.例如30分鐘.請填0.5小時.若3小時.則填3.: num 0.5 0.25 0.3 0.5 0.2 2 1 1 0.5 0.5 ...
## $ 當在瀏覽IG時.你多常關注那些比你過得好的人. : chr "經常" "有時" "有時" "有時" ...
## $ 當在瀏覽IG時.你多常關注那些比你過得差的人. : chr "有時" "完全沒有" "完全沒有" "有時" ...
## $ 整體而言.你對於自己滿不滿意. : chr "普通" "普通" "普通" "滿意" ...
## $ 整體而言.你對於你的社交生活滿不滿意. : chr "普通" "不滿意" "滿意" "滿意" ...
## $ 整體而言.你對自己目前的健康狀況滿不滿意. : chr "非常不滿意" "普通" "滿意" "滿意" ...
## $ 整體而言.你對於你的生活滿不滿意. : chr "普通" "不滿意" "滿意" "滿意" ...
## $ 請問你有心事的時候.經常找哪位同學聊聊 : chr "1130730401張藝馨" "1130730404 陳芎宇" "1130730404 陳芎宇" "1130730414 蔡承軒" ...
## $ 請問你缺錢的時候.經常找哪位同學借錢 : chr "1130730406 楊世宏" "1130730404 陳芎宇" "1130730401張藝馨" "1130730402洪銘材" ...
## $ 請用20個字以上描述你認為軍校生應具備的特質與能力 : chr "懂得變通,不能什麼都只聽上面的人說話,要有自己的想法,但也不能直接頂撞,要保護自己" "能夠服從上級命令,卻又不失自己的想法,不會盲目的服從" "我認為軍校生要勤奮自主,並且有靈活的思考方式。" "應該要能對自己的國家有認同感,培養國際局勢,並於在學期間規劃好未來生涯" ...
## $ 請用20個字以上描述你的理想情人的標準與特質 : chr "長頭髮、可愛型的、稍微粘人但也不要太黏,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. 將變項自我滿意程度改成因素向量,且滿意程度有排序
# 先檢視變項自我滿意程度
# 1. 將變項性別改成因素向量,且依男女排序
# 先檢視變項
data$gender
## [1] "男" "男" "男" "男" "男" "男" "男" "男" "男" "女" "男" "男" "男" "女" "男"
## [16] "男" "女" "男"
class(data$gender)
## [1] "character"
# 用factor或as.factor函數進行轉換
data$gender
## [1] "男" "男" "男" "男" "男" "男" "男" "男" "男" "女" "男" "男" "男" "女" "男"
## [16] "男" "女" "男"
class(data$gender)
## [1] "character"
# 用factor或as.factor函數進行轉換
data$gender<- as.factor(data$gender)
data$gender <- factor(data$gender,
ordered = TRUE,
levels = c("男","女"))
data$gender
## [1] 男 男 男 男 男 男 男 男 男 女 男 男 男 女 男 男 女 男
## Levels: 男 < 女
# 用factor或as.factor函數進行轉換
### 題組二 矩陣、陣列
# 建立一個名為my_mat的矩陣,含姓名、談心對象、借錢對象
my_mat <- as.matrix(data[1:18,c(3,16:17)]) # using as.matrix.data.frame(.) method
my_mat
## name mate_talk mate_money
## 1 "1130730408莊詠翔" "1130730401張藝馨" "1130730406 楊世宏"
## 2 "1130730404 陳芎宇" "1130730404 陳芎宇" "1130730404 陳芎宇"
## 3 "1130730406 楊世宏" "1130730404 陳芎宇" "1130730401張藝馨"
## 4 "1130730416 黄子騏" "1130730414 蔡承軒" "1130730402洪銘材"
## 5 "1130730417廖呈祐" "1130730401張藝馨" "1130730406 楊世宏"
## 6 "1130730415羅勝鴻" "1130730418 林秉玄" "1130730418 林秉玄"
## 7 "1130730401張藝馨" "1130730401張藝馨" "1130730406 楊世宏"
## 8 "1130730413方正順" "1130730406 楊世宏" "1130730406 楊世宏"
## 9 "1130730414 蔡承軒" "1130730416 黄子騏" "1130730415羅勝鴻"
## 10 "1130730421 鄧淑芸" "1130730422 陳昕辰" "1130730422 陳昕辰"
## 11 "1130730407鄭富元" "1130730415羅勝鴻" "1130730417廖呈祐"
## 12 "1130730405 陳嘉成" "1130730406 楊世宏" "1130730406 楊世宏"
## 13 "1130730412洪浩智" "1130730406 楊世宏" "1130730406 楊世宏"
## 14 "1130730422 陳昕辰" "1130730422 陳昕辰" "1130730422 陳昕辰"
## 15 "1130730418 林秉玄" "1130730415羅勝鴻" "1130730416 黄子騏"
## 16 "1130730402洪銘材" "1130730411 楊享富" "1130730401張藝馨"
## 17 "1130730420 高千琇" "1130730407鄭富元" "1130730407鄭富元"
## 18 "1130730411 楊享富" "1130730402洪銘材" "1130730402洪銘材"
# 請問第5位同學的談心對象、借錢對象是誰?
my_mat[5, ]
## name mate_talk mate_money
## "1130730417廖呈祐" "1130730401張藝馨" "1130730406 楊世宏"
# 請問所有同學的借錢對象是誰?
my_mat[, 3]
## 1 2 3 4
## "1130730406 楊世宏" "1130730404 陳芎宇" "1130730401張藝馨" "1130730402洪銘材"
## 5 6 7 8
## "1130730406 楊世宏" "1130730418 林秉玄" "1130730406 楊世宏" "1130730406 楊世宏"
## 9 10 11 12
## "1130730415羅勝鴻" "1130730422 陳昕辰" "1130730417廖呈祐" "1130730406 楊世宏"
## 13 14 15 16
## "1130730406 楊世宏" "1130730422 陳昕辰" "1130730416 黄子騏" "1130730401張藝馨"
## 17 18
## "1130730407鄭富元" "1130730402洪銘材"
### 題組三 資料框
# 檢視問卷(已是資料框形式)的資料內容
#view(data)
# 檢視資料框的資料結構
str(data)
## 'data.frame': 18 obs. of 19 variables:
## $ time : POSIXct, format: "2021-02-27 10:14:22" "2021-02-27 10:30:25" ...
## $ email : chr "0803brian@gmail.com" "bbirbbira@gmail.com" "p7786071@gmail.com" "kd910518@gmail.com" ...
## $ name : chr "1130730408莊詠翔" "1130730404 陳芎宇" "1130730406 楊世宏" "1130730416 黄子騏" ...
## $ birth : Date, 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 180 173 170 177 169 178 172 167 188 158 ...
## $ weight : num 60 62 69 65 64 78 72 63 100 53 ...
## $ useig : num 6 4 1 7 7 7 6 7 7 7 ...
## $ usetime : num 0.5 0.25 0.3 0.5 0.2 2 1 1 0.5 0.5 ...
## $ up_com : chr "經常" "有時" "有時" "有時" ...
## $ down_com : chr "有時" "完全沒有" "完全沒有" "有時" ...
## $ sat_self : chr "普通" "普通" "普通" "滿意" ...
## $ sat_social: chr "普通" "不滿意" "滿意" "滿意" ...
## $ sat_health: chr "非常不滿意" "普通" "滿意" "滿意" ...
## $ sat_life : chr "普通" "不滿意" "滿意" "滿意" ...
## $ mate_talk : chr "1130730401張藝馨" "1130730404 陳芎宇" "1130730404 陳芎宇" "1130730414 蔡承軒" ...
## $ mate_money: chr "1130730406 楊世宏" "1130730404 陳芎宇" "1130730401張藝馨" "1130730402洪銘材" ...
## $ cadet : chr "懂得變通,不能什麼都只聽上面的人說話,要有自己的想法,但也不能直接頂撞,要保護自己" "能夠服從上級命令,卻又不失自己的想法,不會盲目的服從" "我認為軍校生要勤奮自主,並且有靈活的思考方式。" "應該要能對自己的國家有認同感,培養國際局勢,並於在學期間規劃好未來生涯" ...
## $ lover : chr "長頭髮、可愛型的、稍微粘人但也不要太黏,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)
## time email name birth
## 1 2021-02-27 10:14:22 0803brian@gmail.com 1130730408莊詠翔 2002-03-08
## 2 2021-02-27 10:30:25 bbirbbira@gmail.com 1130730404 陳芎宇 2001-12-04
## 3 2021-02-27 10:31:47 p7786071@gmail.com 1130730406 楊世宏 2001-10-15
## 4 2021-02-27 10:50:07 kd910518@gmail.com 1130730416 黄子騏 2002-05-18
## 5 2021-02-27 10:55:39 lcy200195@gmail.com 1130730417廖呈祐 2001-09-05
## 6 2021-02-27 10:56:57 brianlo900421@gmail.com 1130730415羅勝鴻 2001-04-21
## gender height weight useig usetime up_com down_com sat_self sat_social
## 1 男 180 60 6 0.50 經常 有時 普通 普通
## 2 男 173 62 4 0.25 有時 完全沒有 普通 不滿意
## 3 男 170 69 1 0.30 有時 完全沒有 普通 滿意
## 4 男 177 65 7 0.50 有時 有時 滿意 滿意
## 5 男 169 64 7 0.20 完全沒有 完全沒有 滿意 滿意
## 6 男 178 78 7 2.00 有時 有時 不滿意 普通
## sat_health sat_life mate_talk mate_money
## 1 非常不滿意 普通 1130730401張藝馨 1130730406 楊世宏
## 2 普通 不滿意 1130730404 陳芎宇 1130730404 陳芎宇
## 3 滿意 滿意 1130730404 陳芎宇 1130730401張藝馨
## 4 滿意 滿意 1130730414 蔡承軒 1130730402洪銘材
## 5 滿意 滿意 1130730401張藝馨 1130730406 楊世宏
## 6 滿意 滿意 1130730418 林秉玄 1130730418 林秉玄
## cadet
## 1 懂得變通,不能什麼都只聽上面的人說話,要有自己的想法,但也不能直接頂撞,要保護自己
## 2 能夠服從上級命令,卻又不失自己的想法,不會盲目的服從
## 3 我認為軍校生要勤奮自主,並且有靈活的思考方式。
## 4 應該要能對自己的國家有認同感,培養國際局勢,並於在學期間規劃好未來生涯
## 5 重視團隊合作,有持續學習的企圖心,對自己的生活負責,且行事認真不貪圖方便
## 6 我認為軍校生應該具有處理事情的應變能力以及抗壓性
## lover
## 1 長頭髮、可愛型的、稍微粘人但也不要太黏,160-170之間
## 2 能夠了解我的,能夠體諒我的個性的,能夠聽我和陪我說話的
## 3 能夠互相理解、尊重彼此的喜好、協助對方完成目標、視彼此為重要他人。
## 4 我也沒什麼好描述的啦,條件又沒多好哪有資格要求東要求西,感覺對了就好反正也把不到
## 5 不過度挑食,生活不奢靡,單純善良,能夠對自己的生活負責,愛笑開朗
## 6 我的理想情人標準是身材勻稱 五官端正,特質是能夠彼此體諒
tail(data)
## time email name birth
## 13 2021-02-27 19:07:45 eric20010121@gmail.com 1130730412洪浩智 2002-01-21
## 14 2021-02-27 23:08:26 anne21230@gmail.com 1130730422 陳昕辰 2001-12-21
## 15 2021-03-03 08:05:26 benson081014@gmail.com 1130730418 林秉玄 2002-08-10
## 16 2021-03-03 08:57:14 tzuyumomo2@gmail.com 1130730402洪銘材 2002-08-17
## 17 2021-03-03 08:58:34 gqianxiu@gmail.com 1130730420 高千琇 2002-03-26
## 18 2021-03-03 08:58:34 fenab.06.12.06@gmail.com 1130730411 楊享富 2002-03-30
## gender height weight useig usetime up_com down_com sat_self sat_social
## 13 男 176 82 5 1.00 經常 有時 普通 普通
## 14 女 164 48 7 0.50 完全沒有 完全沒有 不滿意 不滿意
## 15 男 170 53 7 2.00 很少 很少 普通 普通
## 16 男 186 80 5 0.50 很少 很少 滿意 滿意
## 17 女 165 59 7 3.00 有時 很少 普通 滿意
## 18 男 176 72 5 0.35 有時 很少 滿意 滿意
## sat_health sat_life mate_talk mate_money
## 13 普通 普通 1130730406 楊世宏 1130730406 楊世宏
## 14 普通 滿意 1130730422 陳昕辰 1130730422 陳昕辰
## 15 滿意 普通 1130730415羅勝鴻 1130730416 黄子騏
## 16 普通 滿意 1130730411 楊享富 1130730401張藝馨
## 17 不滿意 不滿意 1130730407鄭富元 1130730407鄭富元
## 18 滿意 滿意 1130730402洪銘材 1130730402洪銘材
## cadet
## 13 領袖才能和統御能力是必備的,我認為還需要具備同理心,知道底下官兵的需求
## 14 愛國,體力好,忍耐,服從,沈著,機警,勇敢,不怕死,不怕難,積極,時間管理
## 15 誠實並將自己該做的事做好不用他人提醒不用他人擔心
## 16 霸氣外露 注重細節 做事情要有條理 不要亂搞學弟妹
## 17 能夠安排利用時間 獨立思考的能力 高抗壓性 負責任 對自我的肯定
## 18 獨立自主,上進心,社交能力,成績可,體能好,認真負責,獨立思考,獨立批判能力
## lover
## 13 希望她能一直愛著我,不要對我說謊,貼心能夠理解我的
## 14 有工作收入,年上,有錢,有共同興趣,講話很好笑
## 15 我的理想情人標準是溫柔體貼不會做不好的事不菸不酒
## 16 高於170 可愛 漂亮 不要太粘人 不要無理取鬧
## 17 有身高有顏值會開車會打球會煮飯會拍照會音樂 體貼溫柔浪漫幽默負責任情商高等等的男生
## 18 聊得來,看得舒服,個性和,自己喜歡,善良,喜歡小動物
# 請將變數"軍校生應具備的特質"的內容印出來
data$cadet
## [1] "懂得變通,不能什麼都只聽上面的人說話,要有自己的想法,但也不能直接頂撞,要保護自己"
## [2] "能夠服從上級命令,卻又不失自己的想法,不會盲目的服從"
## [3] "我認為軍校生要勤奮自主,並且有靈活的思考方式。"
## [4] "應該要能對自己的國家有認同感,培養國際局勢,並於在學期間規劃好未來生涯"
## [5] "重視團隊合作,有持續學習的企圖心,對自己的生活負責,且行事認真不貪圖方便"
## [6] "我認為軍校生應該具有處理事情的應變能力以及抗壓性"
## [7] "軍校我覺得要養成獨立思考的能力,並且觀察外界環境變化去做應對進退"
## [8] "忠誠僕實 用心致志 團結合作 不菸不嚼檳榔 不輕易飲酒 隨心所欲 不逾矩"
## [9] "外表嚴肅內心輕鬆 能收能放台面上跟台面下分的清楚可以讀懂氣氛"
## [10] "我認為軍校生應具備誠實,勇於承認錯誤並改進且對於自己不擅長的事務勇於學習"
## [11] "誠實榮譽守時守紀律會玩也懂得收心待人處事的態度和善捍衛國家堅守崗位"
## [12] "服從忍耐 刻苦耐勞 積極向學 勤奮向上 熱心助人"
## [13] "領袖才能和統御能力是必備的,我認為還需要具備同理心,知道底下官兵的需求"
## [14] "愛國,體力好,忍耐,服從,沈著,機警,勇敢,不怕死,不怕難,積極,時間管理"
## [15] "誠實並將自己該做的事做好不用他人提醒不用他人擔心"
## [16] "霸氣外露 注重細節 做事情要有條理 不要亂搞學弟妹"
## [17] "能夠安排利用時間 獨立思考的能力 高抗壓性 負責任 對自我的肯定 "
## [18] "獨立自主,上進心,社交能力,成績可,體能好,認真負責,獨立思考,獨立批判能力"
# 另一種做法
data[,18]
## [1] "懂得變通,不能什麼都只聽上面的人說話,要有自己的想法,但也不能直接頂撞,要保護自己"
## [2] "能夠服從上級命令,卻又不失自己的想法,不會盲目的服從"
## [3] "我認為軍校生要勤奮自主,並且有靈活的思考方式。"
## [4] "應該要能對自己的國家有認同感,培養國際局勢,並於在學期間規劃好未來生涯"
## [5] "重視團隊合作,有持續學習的企圖心,對自己的生活負責,且行事認真不貪圖方便"
## [6] "我認為軍校生應該具有處理事情的應變能力以及抗壓性"
## [7] "軍校我覺得要養成獨立思考的能力,並且觀察外界環境變化去做應對進退"
## [8] "忠誠僕實 用心致志 團結合作 不菸不嚼檳榔 不輕易飲酒 隨心所欲 不逾矩"
## [9] "外表嚴肅內心輕鬆 能收能放台面上跟台面下分的清楚可以讀懂氣氛"
## [10] "我認為軍校生應具備誠實,勇於承認錯誤並改進且對於自己不擅長的事務勇於學習"
## [11] "誠實榮譽守時守紀律會玩也懂得收心待人處事的態度和善捍衛國家堅守崗位"
## [12] "服從忍耐 刻苦耐勞 積極向學 勤奮向上 熱心助人"
## [13] "領袖才能和統御能力是必備的,我認為還需要具備同理心,知道底下官兵的需求"
## [14] "愛國,體力好,忍耐,服從,沈著,機警,勇敢,不怕死,不怕難,積極,時間管理"
## [15] "誠實並將自己該做的事做好不用他人提醒不用他人擔心"
## [16] "霸氣外露 注重細節 做事情要有條理 不要亂搞學弟妹"
## [17] "能夠安排利用時間 獨立思考的能力 高抗壓性 負責任 對自我的肯定 "
## [18] "獨立自主,上進心,社交能力,成績可,體能好,認真負責,獨立思考,獨立批判能力"
# 請將第7至12位同學的"生日"印出來
data[7:12,4]
## [1] "2002-07-18" "2001-11-11" "2002-03-30" "2002-04-23" "2001-10-06"
## [6] "2001-10-29"
# 建立新資料框df,刪除原本資料第1、2欄位的變數
# 另一種做法
# 題組四 清單
# 1. 我們已經建立好幾個物件my_mat, data, df
# 請收納進一個清單中叫做 `all`
# 請將my_mat矩陣叫出
# 將清單命名
# 請將df資料框叫出
mid <- as.Date("2002-01-01")
mid
## [1] "2002-01-01"
as.integer(mid)
## [1] 11688
birth <- as.Date(data$birth)
as.integer(birth)
## [1] 11754 11660 11610 11825 11570 11433 11886 11637 11776 11800 11601 11624
## [13] 11708 11677 11909 11916 11772 11776
for(i in birth){
if (i>mid){
print("年輕")
} else{
print("老")
}
}
## [1] "年輕"
## [1] "老"
## [1] "老"
## [1] "年輕"
## [1] "老"
## [1] "老"
## [1] "年輕"
## [1] "老"
## [1] "年輕"
## [1] "年輕"
## [1] "老"
## [1] "老"
## [1] "年輕"
## [1] "老"
## [1] "年輕"
## [1] "年輕"
## [1] "年輕"
## [1] "年輕"