字符串值的数字值
问题描述:
只要每个唯一字符串具有唯一的数字返回值,我如何才能将字符串值更改为任何数值。字符串值的数字值
例如INTcntry
得到一个价值1
为2708BG
,2
为2703BG
...不过我不想手动分配它,因为我有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
答
我怀疑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)
答
一种方法是你的变量转换为一个因素,然后使用as.numeric
:
as.numeric(factor(df$INTcntry))
当然,那么问题是,为什么你需要数字,而不能仅仅使用这个因子。 – Roland 2013-03-14 11:57:45
这是真的,我想在另一个程序中使用这些数据,只是想确保它可以正确读取值。但也许它可以读取字符串值一样好。会尝试。 – Marloes 2013-03-14 12:04:03