在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)
答案 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