2017-08-02 68 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)