2013-03-14 49 views
0

只要每个唯一字符串具有唯一的数字返回值,我如何才能将字符串值更改为任何数值。字符串值的数字值

例如INTcntry得到一个价值12708BG22703BG ...不过我不想手动分配它,因为我有9000个有所不同的字符串值。

 idno  INTcntry 
4039 3857   2708BG 
4040 3858   2708BG 
4041 3862   2704BG 
4042 3863   2704BG 
4043 3864   2704BG 
4044 3865   2704BG 
4045 3867   2704BG 
4046 3868   2704BG 
4047 3871   2703BG 
4048 3872   2703BG 
4199 161   1011CH 
4201 163   1011CH 

回答

2

我怀疑INTcntry是一个因素,

is.factor(dd$INTcntry) 

在这种情况下,只是利用这个事实:

R> levels(dd$INTcntry) 
[1] "1011CH" "2703BG" "2704BG" "2708BG" 
R> labels(dd$INTcntry) 
[1] "1" "2" "3" "4" "5" "6" "7" "8" 

所以只标注转换为数值:

as.numeric(labels(dd$INTcntry)) 

o [R

as.numeric(dd$INTcntry) 

如果INTcntry是不是一个因素,就用:

factor(dd$INTcntry) 
1

一种方法是你的变量转换为一个因素,然后使用as.numeric

as.numeric(factor(df$INTcntry)) 
+1

当然,那么问题是,为什么你需要数字,而不能仅仅使用这个因子。 – Roland 2013-03-14 11:57:45

+0

这是真的,我想在另一个程序中使用这些数据,只是想确保它可以正确读取值。但也许它可以读取字符串值一样好。会尝试。 – Marloes 2013-03-14 12:04:03