iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 4
0
AI & Data

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

[Data Science系列]R語言的二維世界-運用矩陣管理帳目-(上)-我要成為哥布林富翁

"恩君,好久不見" 遠處傳來一個熟悉的聲音,一個身材精幹的男子向著恩君揮著手
"阿~叔叔,真的很久不見了"

恩君的叔叔長年在世界各地遊走,扛著貨物到處銷售,藥水,裝備,武器等等。
"恩君,叔叔一直希望把生意交給你打理,但你連加減乘除都算不好" 叔叔嘆了口氣說道
"叔叔,讓我試試吧~"手中緊緊握著魔法道具的恩君大聲喊道

"喔?看來幾個月不見大有長進,好,那來試試吧,這是這個月叔叔賣的道具帳目"說完叔叔便把一疊帳冊塞到恩君手中


叔叔的帳目簡單的將物品歸類為,藥水防具武器雜物
去過的地區有朱拉大森林卡恩村魔導國邊境小鎮

一維的世界只有一橫線,現在加上了一直排
"恩君,還記得前幾天用的向量vector, 因子factor嗎?這次我們將進入二維的世界"

昨天我們用一維方式來做食物分配
以一樣的方式來試試藥水地區的收入

place <- c("朱拉大森林", "卡恩村", "魔導國", "邊境小鎮")
potion <- c(251, 542, 982, 112)
names(potion) <- place
print(potion

朱拉大森林     卡恩村     魔導國   邊境小鎮 
       251        542        982        112 

接著將防具武器雜物,以同樣方式帶入

armor <- c(234, 321, 121, 872)
weapon <- c(92, 55, 66, 125)
misc <- c(542, 685, 512, 393)

在將數據導入成矩陣前,先來了解一下矩陣的概念
運用matrix()來做一個4x2的表, nrow = 代表要幾個橫行, ncol = 代表要幾個直排
row念起來像肉,所以橫躺的肉一塊一塊
col念起來像高倫,石頭人都是站著的,所以是直排

matrix(1:6, nrow = 4)
     [,1] [,2]
[1,]    1    5
[2,]    2    6
[3,]    3    1
[4,]    4    2

這時因為6無法被除盡,因此系統將自動在循環

假設這時需要的是以橫行先做排序可用 byrow = True就可以了

matrix(1:6, nrow = 4, byrow = TRUE)
     [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6
[4,]    1    2

以防具和武器的例子來說
防具在各地區賣了234, 321, 121, 872
武器在各地區賣了92, 55, 66, 125

armor_weapon <- c(234, 321, 121, 872,92, 55, 66, 125)
matrix(armor_weapon, nrow = 2, ncol = 4, byrow = TRUE)

     [,1] [,2] [,3] [,4]
[1,]  234  321  121  872
[2,]   92   55   66  125

接著來命名,記得之前用names(),但矩陣是二維的所以前面加row或col高倫就可以命名囉
之前我們已經把地區儲存在place裡了,直接來帶入吧!
row行就直接輸入吧,記得要用"",因為他是字元character

colnames(armor_weapon_matrix) <- place
rownames(armor_weapon_matrix) <- c("aromor", "weapon")
armor_weapon_matrix

         朱拉大森林 卡恩村 魔導國  邊境小鎮
armor         234    321    121      872
weapon         92     55     66      125

"看起來整潔多了,在管理上也更方便了"
"沒錯,好了今天魔素消耗太多了,吾先休眠了,明天在來談談後半段..." R語言說著說著便睡著了

感謝大家的收看,恩君會繼續努力學習~Cya tmr~~


上一篇
[Data Science系列]運用R語言進行分配-哥布林恩家中分配食物
下一篇
[Data Science系列]R語言的二維世界-運用矩陣管理帳目(中)-我要成為哥布林富翁
系列文
[Data Science系列]成為哥布林的那件事-非常粗(初)心者30

尚未有邦友留言

立即登入留言