2013-03-14 79 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