factor不仅包括分类变量本身,还包括变量不同的可能水平,即使他们不在数据中出现。
创建一个因子:
factor(x=character(),levels=sort(unique(x),na.last=TRUE),labels=levels,exclude=NA,ordered=is.ordered(x))
与之相关的有:
ordered(x, ...)
is.factor(x)
is.ordered(x)
as.factor(x)
as.ordered(x)
addNA(x, ifany = FALSE)
其中:
levels:指定因子可能的水平,缺省值是向量x中互异的值。
labels:指定水平的名字。
exclude:表示从向量x中剔除的水平值。
ordered:逻辑性选项,用来指定因子的水平是否有次序。
例子:
(1)factor(1:3)
(2)factor(1:3,levels=1:5)
(3)factor(1:3,lables=c("A","B","C"))
(4)factor(1:5,exclude=4)
函数levels(f)提取出因子f中可能的水平值。
从文件中读取数据,或者将matrix等转换为data frame时,会自动将字符串识别为factor,需要设置stringsAsFactors=F,取消这一默认设置。
将factor数据转换为数值型,需要先将其转换为character类型 :as.numeric(as.character(factorX))