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

时间:2015-04-05 05:09:18

标签: r list

在R中,我想使用键值列表将一列键转换为值。它类似于:How to map a column through a dictionary in 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)

1 个答案:

答案 0 :(得分:3)

在这种情况下,

unlist是一个有用的功能

unlist(d[c('a', 'a', 'c', 'b')], use.names=FALSE)
#[1] 1 1 3 2

或另一个选项是stack,它将'key / value'作为'data.frame'中的列返回。通过对values列进行子集化,我们得到

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