0
我是R新手。我有一個具有> 10000級別的因子對象。大多數這些級別都是我想要轉換爲數字的數字,但有幾個級別包含我不想觸及的說明。R:將因子的某些級別轉換爲數字
是否有一種很好的方法來隔離要轉換爲數字的因子的相關級別? as.numeric()會是一個不錯的選擇嗎?
非常感謝!
我是R新手。我有一個具有> 10000級別的因子對象。大多數這些級別都是我想要轉換爲數字的數字,但有幾個級別包含我不想觸及的說明。R:將因子的某些級別轉換爲數字
是否有一種很好的方法來隔離要轉換爲數字的因子的相關級別? as.numeric()會是一個不錯的選擇嗎?
非常感謝!
由於我們不能有多個類的列/載體,一個建議是子集僅numeric
元件和將其轉換回numeric
使用as.numeric(as.character(
i1 <- grepl("^[0-9.]+$", v1)
v2 <- as.numeric(as.character(v1[i1]))
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"