2014-06-26 18 views
0

我试图将带有标签/值的数据框转换为指定的数字矢量。 例如我有以下的数据帧将标签/值的数据帧转换为指定的数字矢量

>df=data.frame(lab=c("A","B","C","D"),values=c(1,2,3,4)) 
> df 
    lab values 
1 A  1 
2 B  2 
3 C  3 
4 D  4 

所以我试图做的是重复或使用该数据帧上的功能得到以下

>v_needed=c("A"=1,"B"=2,"C"=3,"D"=4) 
> v_needed 
A B C D 
1 2 3 4 

我试图将其转换为一个因素,但它并没有得到期望的输出

>v_failure=factor(df$values,labels=df$lab) 

回答

3

可以使用setNames功能

v <- with(df, setNames(values, lab)) 
v 
# A B C D 
# 1 2 3 4 
+0

非常感谢你@MrFlick。多么简单的解决方案! – BICube