> x
[1] single married married single
Levels: married single
> class(x)
[1] "factor"
> levels(x)
[1] "married""single"
Factor创建
> x <- factor(c("single", "married", "married", "single"));
> x
[1] single married married single
Levels: married single
> x <- factor(c("single", "married", "married", "single"), levels = c("single", "married", "divorced"));
> x
[1] single married married single
Levels: single married divorced
> x <- factor(c("single","married","married","single"))
> str(x)
Factor w/ 2 levels "married","single": 2112
Factor访问
> x
[1] single married married single
Levels: married single
> x[3] # access 3rd element
[1] married
Levels: married single
> x[c(2, 4)] # access 2nd and 4th element
[1] married single
Levels: married single
> x[-1] # access all but 1st element
[1] married married single
Levels: married single
> x[c(TRUE, FALSE, FALSE, TRUE)] # using logical vector
[1] singlesingle
Levels: married single
Factor修改
> x
[1] single married married single
Levels: single married divorced
> x[2] <- "divorced"# modify second element; x
[1] single divorced married single
Levels: single married divorced
> x[3] <- "widowed"# cannot assign values outside levels
Warning message:
In `[<-.factor`(`*tmp*`, 3, value = "widowed") :
invalid factor level, NA generated
> x
[1] single divorced <NA> single
Levels: single married divorced
> levels(x) <- c(levels(x), "widowed") # add new level
> x[3] <- "widowed"
> x
[1] single divorced widowed single
Levels: single married divorced widowed