iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
0
AI & Data

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

[Data Science系列]利用R語言來管理清單-恩君考慮開間交友平台?

昨天透過解析我們了解到了利用列表能管理多種不同屬性的數值,當然如同之前的vector向量,我們一樣能夠把所需要的資料用[]中括號擷取出來,或是列表的名稱。

再把村莊的狀態利用str()來解析看看吧

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

假設我們想要找出村莊的資料,例如:村莊內種族的分布可以用多種方式來呈現,所得到的都將會是一樣的結果。
種族在第3個列表或是我們可以直接用種族來做查找,

村莊[3]
村莊["種族"]

$`種族`
[1] "Orc"    "Hoblin" "Goblin" "Elf"    "Harpy" 

不同於上面的方式,下面的三種方式是僅需要list列表中的資料,因此使用兩個中括號,代表我們只需要此列表的內容。
另外,$這個符號也能代替中括號

村莊[[3]]
村莊[["種族"]]
村莊$種族

[1] "Orc"    "Hoblin" "Goblin" "Elf"    "Harpy" 

"那如果只需要擷取列表內的部分資料呢?"
"我只想知道名字,種族及富有度" <- 拜金
"一樣我們可以利用c()來做"

村莊淺力股 <- 村莊[c(2, 3, 5)]

村莊淺力股
$`名字`
[1] "Billy"     "Bloodhoof" "Scars"     "Dean"     
[5] "Sammy"    

$種族
[1] "Orc"    "Hoblin" "Goblin" "Elf"    "Harpy" 

$富有度
[1] OK   POOR POOR RICH RICH
Levels: POOR < OK < RICH

這邊就可以看到我們將新的數值提取出來並存在村莊淺力股的部份,選擇需要的數值。

當然如果我們需要直接選取list中的某個特定的物件也是可以做得到
Sammy在哪裡呢?在第二列表名字的第五個

村莊$名字[5]
村莊[[2]][5]

[1] "Sammy"

同樣的我們也可以在列表了再加入新的數值,今年是魔物年2018年
淺力股都是高富帥

村莊淺力股 <- c(村莊淺力股, list(備註 = "高富帥", year = 2018, ))

村莊淺力股
$`名字`
[1] "Billy"     "Bloodhoof" "Scars"     "Dean"     
[5] "Sammy"    

$種族
[1] "Orc"    "Hoblin" "Goblin" "Elf"    "Harpy" 

$富有度
[1] OK   POOR POOR RICH RICH
Levels: POOR < OK < RICH

$備註
高富帥

$year
2018

如果我們是希望數值都是在同一個組,備註裡呢?

村莊淺力股A <- c(村莊淺力股, list(備註 = c("高富帥", 2018))
村莊淺力股A

$`名字`
[1] "Billy"     "Bloodhoof" "Scars"     "Dean"     
[5] "Sammy"    

$種族
[1] "Orc"    "Hoblin" "Goblin" "Elf"    "Harpy" 

$富有度
[1] OK   POOR POOR RICH RICH
Levels: POOR < OK < RICH

$備註
高富帥  2018

好了,這樣是不是更容易管理淺力股呢?


上一篇
[Data Science系列]R語言多維空間的管理-解析分類人物屬性值
下一篇
[Data Science系列]利用R語言處理更多資料-利用data.frame優化恩君的交友平台
系列文
[Data Science系列]成為哥布林的那件事-非常粗(初)心者30

尚未有邦友留言

立即登入留言