2016-12-30 12 views
0

私はRが初めてです。> 10000レベルの因子オブジェクトがあります。これらのレベルのほとんどは数字に変換したい数値ですが、触れたくない説明が含まれているいくつかのレベルがあります。R:あるレベルの因子を数値に変換する

数字に変換する要因の関連レベルを分離する良い方法はありますか? as.numeric()は良い選択でしょうか?

多くの感謝!

答えて

2

我々は、複数のクラスでカラム/ベクトルを持つことができないように、1つの提案だけnumeric要素サブセットas.numeric(as.character(

i1 <- grepl("^[0-9.]+$", v1) 
v2 <- as.numeric(as.character(v1[i1])) 
0
a1 <- factor(c(letters[1:3], '1', '2', '3')) 
levels(a1) 
# [1] "1" "2" "3" "a" "b" "c" 

a2 <- a1[1:3] 
levels(a2) 
# [1] "1" "2" "3" "a" "b" "c" 

# using @akrun grepl statement to weed out unused levels 
a2 <- factor(a2, levels(a2)[!grepl("^[0-9.]+$", levels(a2))]) 
levels(a2) 
# [1] "a" "b" "c" 

# use either @akrun grepl or this droplevels() function 
a2 <- droplevels(a2) 
# [1] a b c 
# Levels: a b c 

unclass(a2) 
# [1] 1 2 3 
# attr(,"levels") 
# [1] "a" "b" "c" 
を用い numericに戻し、それを変換することです
関連する問題