2016-12-30 6 views
0

Ich bin neu in R. Ich habe ein Faktor-Objekt mit> 10000 Ebenen. Die meisten dieser Ebenen sind Zahlen, die ich in Zahlen umwandeln möchte, aber es gibt mehrere Ebenen, die Beschreibungen enthalten, die ich nicht berühren möchte.R: Umwandlung einiger Ebenen eines Faktors in numerische

Gibt es eine gute Möglichkeit für mich, die relevanten Ebenen des zu konvertierenden Faktors zu isolieren? Wäre as.numeric() eine gute Wahl?

Vielen Dank!

Antwort

2

Da wir keine Spalte/Vektor mit mehreren Klassen haben können, ist ein Vorschlag, nur die numeric Elemente und wandelt es wieder in numeric mit 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" 
der Teilmenge
Verwandte Themen