iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
0
AI & Data

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

[Data Science系列]運用R語言進行分配-哥布林恩家中分配食物

OK!這次恩君透過R語言了解到了運用簡易加減來記錄上禮拜零用錢,賭博,及其他花費~
看起來恩君花費有點兇阿,該妥善好好管理金錢儲蓄才能換套好裝備。

一日。。。
"恩君,村長最近告知咱們村鬧飢荒阿,在食物資源來之前要好好規劃食物分配阿"
"阿~我們家有6個兄弟姊妹耶,該盤點一下食物量了,但一人該要幾份呢?"

"沒問題的,恩君還記得昨天零用金的計算方式嗎?讓我們來試試看"

首先家中水果,蘋果還有一桶60顆,橘子48顆,奇異果30粒,一串香蕉42根,西瓜12顆,魚18條,豬肉36片,起司6塊
記得昨天用names()的方式來命名,這次我們來試試不同的方式吧

food_vector <- c(apple = 60 , orange = 48 , kiwi = 30 , banana = 42 , watermelon = 12, fish = 18, pork = 36 , cheese = 6)
food_vector
     apple     orange       kiwi     banana watermelon       fish       pork     cheese 
        60         48         30         42         12         18         36          6 

"酷!"
"接著家裡的兄弟都能分到幾個呢?"

each_one <- food_vector/6
     apple     orange       kiwi     banana watermelon       fish       pork     cheese 
        10          8          5          7          2          3          6          1 

當我們用除法來分配,除於6時將會把每個儲存在格內的數據來進行運算

"嘿~恩君,等等,食物數量有誤阿,記得魚肉和豬肉上次就吃光了阿"
"糟糕~那該怎麼算呢"
"沒問題的,這時透過子集(subseting)可以簡單選擇或剔除不要的數值"

試試用[]來選擇要的數據

each_one [c(1, 2, 3, 4, 5)]
     apple     orange       kiwi     banana watermelon     cheese 
        10          8          5          7          2          1 

也可用:來表示1到5的數值

each_one [c(1:5)]
     apple     orange       kiwi     banana watermelon     cheese 
        10          8          5          7          2          1 

負數則是反面的意思,表示不要6和7的數值

each_one [c(-6, -7)]
     apple     orange       kiwi     banana watermelon     cheese 
        10          8          5          7          2          1 

"可是這樣的話恩君還要去數第幾個代表的食物,難道不能直接用食物的名字來看數量嗎?"
"就知道你會問"

如果想知道kiwi, apple, orange的話,用"來抓特定的食物

each_one[c("kiwi", "apple", "orange")]
  kiwi  apple orange 
     5     10      8 

單個也可直接輸入,不用c()

each_one[kiwi]
  kiwi  
     5

哇~R語言果然很厲害啊,這樣在資源來之前我們就不會餓死了。


上一篇
[Data Science系列]運用R語言管理資料-來去獸人賭場賭一把
下一篇
[Data Science系列]R語言的二維世界-運用矩陣管理帳目-(上)-我要成為哥布林富翁
系列文
[Data Science系列]成為哥布林的那件事-非常粗(初)心者30

尚未有邦友留言

立即登入留言