0

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

例如INTcntry获取, 1for ...的值但是我不想手动分配它,因为我有 9000 个不同的字符串值。2708BG22703BG

     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
4

2 回答 2

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))

或者

as.numeric(dd$INTcntry)

如果INTcntry不是一个因素,那么只需使用:

factor(dd$INTcntry)
于 2013-03-14T11:55:56.037 回答
1

一种方法是将变量转换为因子,然后使用as.numeric

as.numeric(factor(df$INTcntry))
于 2013-03-14T11:56:16.170 回答