R:使用键值列表将列映射到列

R:使用键值列表将列映射到列,r,list,R,List,在R中,我想使用键值列表将一列键转换为值。它类似于:,但我希望使用列表而不是data.frame 我已尝试使用列表和列来执行此操作: d = list('a'=1, 'b'=2, 'c'=3) d[c('a', 'a', 'c', 'b')] # I want this to return c(1,1,3,2) but it doesn't 但是,上面返回了一个列表: list('a'=1, 'a'=1, 'c'=3, 'b'=2) unlist在这种情况下是一个有用的函数 unlist(

在R中,我想使用键值列表将一列键转换为值。它类似于:,但我希望使用列表而不是data.frame

我已尝试使用列表和列来执行此操作:

d = list('a'=1, 'b'=2, 'c'=3)
d[c('a', 'a', 'c', 'b')]  # I want this to return c(1,1,3,2) but it doesn't
但是,上面返回了一个列表:

list('a'=1, 'a'=1, 'c'=3, 'b'=2)

unlist
在这种情况下是一个有用的函数

unlist(d[c('a', 'a', 'c', 'b')], use.names=FALSE)
#[1] 1 1 3 2
或者另一个选项是
stack
,它以“data.frame”中的列形式返回“key/value”。通过对values列进行子集设置,我们得到

stack( d[c('a', 'a', 'c', 'b')])[,1]
#[1] 1 1 3 2

请尝试
unlist
unlist(d[c('a','a','c','b')),使用.names=FALSE)
,它会得到一个向量,如您所示。太棒了,再次感谢。请回答这个问题,我会接受的。谢谢