0

一意の各文字列に一意の数値が返される限り、文字列値を任意の数値に変更するにはどうすればよいですか。

たとえば、 for 、for ...INTcntryの値を取得しますが、 9000 個の多少異なる文字列値があるため、手動で割り当てたくありません。12708BG22703BG

     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

1 つの方法は、変数を係数に変換してから使用することas.numericです。

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