r - How levels(factorObject)[factorObject] generate complete vector? -
vectorn = c("hello","how","are","you","you","are","hello") factorvectorn = factor(vectorn) #value of levels(factorvectorn) c("are", "hello", "how", "you") all(levels(factorvectorn)[factorvectorn] == vectorn) # returns true
can please explain, how in above illustration levels(factorvectorn)[factorvectorn] create same vector vectorn?
this basic subsetting. help("["):
indexing factors allowed , equivalent indexing numeric codes (see factor) , not character values printed
you show factor levels. internally, factor integer vector, each number (starting 1) corresponds factor level:
str(factorvectorn) #factor w/ 4 levels "are","hello",..: 2 3 1 4 4 1 2 as.integer(factorvectorn) #[1] 2 3 1 4 4 1 2 so, if subset levels these numbers, character vector same values original factor:
str(levels(factorvectorn)[factorvectorn]) #chr [1:7] "hello" "how" "are" "you" "you" "are" "hello" if compare original factor character vector using == factor coerced character this, too.
r
No comments:
Post a Comment