2017-08-02 104 views
0

這與Working with dictionaries/lists in R有關,我們嘗試使用向量來創建鍵值樣式字典,但現在關於如何訪問這些值。在R中使用字典/列表:如何從鍵值對中獲取值?

我可以拿到鑰匙以下列方式

foo <- c(12, 22, 33) 
names(foo) <- c("tic", "tac", "toe") 
names(foo) 
[1] "tic" "tac" "toe" 

,我可以訪問元素

> lapply(FUN=function(a){foo[[a]]},X = 1:length(foo)) 
[[1]] 
[1] 12 

[[2]] 
[1] 22 

[[3]] 
[1] 33 

,然後我可以做

unlist(lapply(FUN=function(a){foo[[a]]},X = 1:length(foo))) 
[1] 12 22 33 
#or 
sapply(FUN=function(a){foo[[a]]},X = 1:length(foo)) 
[1] 12 22 33 

但是這是非常不方便。如何方便地訪問格式爲c(12,22,33)的值?在R中有沒有一些方便的命令?

+0

我假設你的意思是12,不是11? – Calimo

+0

@ Calimo是的,修好了,謝謝。 – hhh

+0

我不確定你在問什麼。你是指'foo [1]'還是'foo [「tic」]?你的最終函數可以寫成'unlist(lapply(FUN = function(a){foo [a]},X = 1:length(foo)))'或者更簡單的寫成'sapply(FUN = function(a){a ,X = foo)'。 – lmo

回答

1

您已經有這些值foo;他們只有a names attribute這對數據結構本身沒有影響。無論名稱如何,任何期待數值向量的函數都可以很好地工作。

如果你想刪除的姓名,只是說:

unname(foo)