iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
0
AI & Data

[Data Science系列]成為哥布林的那件事-非常粗(初)心者系列 第 8

[Data Science系列]R語言多維空間的管理-解析分類人物屬性值

昨天提到運用factor因子能進行文字的比對,在村莊中能快速統計出各種種族,甚至可以比較大小。

"但如果能將資料全部統和在一起,是不是更方便管理呢?"恩君疑惑的問道
"沒問題,這時我們就可以運用list列表,將所有的數值都儲存起來"

在vector裡面每一個元素都必須於相同型態,因此list可以把不同資料型態的值,放到同一個變數裡面
list和其他vector及matrix不同之處在於list內不會被強制轉成同一類no coercion
list內的各元素類型是可以為任意對象,換句話說不同的元素是可以存在list裡的
就連三圍也可以管理

拿村長為例子,村長是哥布林,身上有302金是有錢人

解析村長 <- c("村長", "Goblin", 302, "RICH")
解析村長
[1] "村長"   "Goblin" "302"    "RICH" 

利用str()我們可以看到R將自動將全部轉換成char字元,包含數字

str(解析村長)
chr [1:4] "村長" "Goblin" "302" "RICH"

接下來利用列表list()的方式將所有資料進行整合

list("村長", "Goblin", 302, "RICH")
[[1]]
[1] "村長"

[[2]]
[1] "Goblin"

[[3]]
[1] 302

[[4]]
[1] "RICH"

在用names()來命名,這次就都用中文吧!

names(解析村長) <- c("名字", "種族", "儲蓄", "富有度")

解析村長
$名字
[1] "村長"

$種族
[1] "Goblin"

$儲蓄
[1] 302

$富有度
[1] "RICH"

完成後,相較之前的結構,這邊就可以看出字元和數值同時被儲存起來

str(解析村長)
List of 4
 $ 名字    : chr "村長"
 $ 種族    : chr "Goblin"
 $ 儲蓄    : num 302
 $ 富有度: chr "RICH"

同樣的,複雜一點資料也可以做分析,我們先以村裡5個人來做樣本
根據他們的名字,種族,儲蓄金,和富有度來做設定。當作復習再來試試看吧!
名字有Billy, Bloodhoof, Scars, Dean, Sammy,當然中文字元也是可以的喔~

將數值存於na中
na <- c("Billy", "Bloodhoof", "Scars", "Dean", "Sammy")

種族依序是Orc, Hoblin, Goblin, Elf, Harpy

ra代表種族
ra <- c("Orc", "Hoblin", "Goblin", "Elf", "Harpy")

每個魔物身上的儲蓄

sa代表savings
sa <- c(120, 88, 50, 190, 166)

最後利用factor因子將各個人物身上的儲蓄金來歸類:100金以下是POOR, 100-150是OK, 150以上RICH

wealth <- factor(c("OK", "POOR", "POOR", "RICH", "RICH" ), ordered = TRUE, levels = c("POOR", "OK", "RICH"))
wealth
[1] OK   POOR POOR RICH RICH
Levels: POOR < OK < RICH

所有資料都完成後,運用list將全部整合一起,順便換另外一種方式來設定名字

村莊 <- list(title = "村莊人口狀況", "名字" = na, "種族" = ra, "儲蓄" = sa, "富有度" = we )

讓我們來解析一下可愛的村莊吧

str(村莊)
List of 5
 $ title : chr "村莊人口狀況"
 $ 名字  : chr [1:5] "Billy" "Bloodhoof" "Scars" "Dean" ...
 $ 種族  : chr [1:5] "Orc" "Hoblin" "Goblin" "Elf" ...
 $ 儲蓄  : num [1:5] 120 88 50 190 166
 $ 富有度: Ord.factor w/ 3 levels "POOR"<"OK"<"RICH": 2 1 1 3 3

嘿嘿~那恩君要來製作新娘候選人不就可以輕而易舉的找出真命對象了?
明天利用[]中括號subseting來取出裡面的值~


上一篇
[Data Science系列]運用R語言Factor因子來分析資料-哥布林村的人口激增?
下一篇
[Data Science系列]利用R語言來管理清單-恩君考慮開間交友平台?
系列文
[Data Science系列]成為哥布林的那件事-非常粗(初)心者30

尚未有邦友留言

立即登入留言