2.4 因子
统计中变量:区间变量,名义变量和有序变量
区间变量取连续的数值,可以进行求和平均值等运算
名义变量和有序变量离散值可以是数值,也可以字符串型,
在具体数值没有加减乘除的意义,不能用来计算,而只能分类和计数。
名义变量如性别,省份,职业,有序变量如班级,名次。
2.4.1 factor()函数
因为离散值变量有各种不同的表示方法,在R软件中,为了统一起见,使用因子(factor)来表示这种类型变量。
例如:
sex<-c("M","F","M","M","F")
sexf<-factor(sex);sexf #可以获取数据中水平
函数factor()用来把一个向量编码成为一个因子.其一般形式为:
factor(x,levels = sort(unique(x),na.last=TRUE),labels,exclude = NA,ordered = FALSE)
X向量数据,一般是少量区分的数据值
level是水平,可以自动指定各离散取值,不指定时由x的不同值来求得。
labels可以用来指定各水平的标签,不指定是用个离散取值的对应字符串
exclude参数用来指定要转换为缺失值(NA)的元素值集合。
如果指定levels,则因子的第i个元素当它等于水平中第j个时元素值取j,
如果它的值没有出现在levels中,则对应因子元素值取NA。
ordered取值为真时,表示因子水平有次序的,否则是无次序的。
is.factor()检验对象是否因子。
as.factor()把一个向量转换成一个因子.
函数levels()可以得到因子水平
sex.level<-levels(sexf);sex.level
对于因子向量,可用函数table()来统计各类数据的频数。
sex.tab<-table(sex);sex.tab
2.4.2 tapply()函数
例如:已知5名学生的性别,身高,分组求身高的平均值
height<-c(174,165,180,171,160)
tapply(height,sex,mean)
tapply()一般形式:
tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)
x是一个对象,index是与x有同样长度的因子,fun是需要计算的函数,
simplify是逻辑变量,取值为TRUE和FALSE
2.4.3 gl()函数
gl()一般用于产生因子
gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)
n为水平数,k为每个水平重复次数,length为结果长度
labels是n维向量,表示因子水平,
ordered是逻辑变量,表示是否为有序因子,缺失值为FALSE
gl(3,5)
gl(3,1,15)
网友评论