原标题:R语言中因子的创建与使用
因子在R语言中可以用来表示名义型变量或有序变量。名义变量一般表示类别,如性别,种族等等。有序变量是有一定排序顺序的变量,如职称,年级等等。在R语言中,名义变量和有序变量可以使用因子来表示。
创建因子
在R语言中可以使用factor()函数和gl()函数来创建因子变量。
(1)使用factor()函数
factor()函数的语法格式为:
f
其中:
x 为创建因子的数据,是一个向量;
levels:因子数据的水平,默认是x中不重复的值;
labels:标识某水平的名称,与水平一一对应,以方便识别,默认取levels的值;
exclude:从x中剔除的水平值,默认为NA值;
ordered:逻辑值,因子水平是否有顺序(编码次序),若有取TRUE,否则取FALSE;
nmax:水平个数的限制。
下面给出几个具体的例子来说明具体使用方法:
fc1
fc2
grade
fc3
fc4
本部分执行情况如下图所示:
(2)使用gl()函数
gl()函数用于定义有规律的因子向量,其语法格式如下:
gl(n, k, length = n*k, labels = 1:n, ordered = FALSE)
其中参数的含义如下:
n: 正整数,表示因子的水平个数
k:正整数,表示每个水平重复的次数;
length: 正整数,表示因子向量的长度,默认为n*k
labels: 表示因子水平的名称,默认值为1:n
ordered: 逻辑变量,表示因子水平是否是有次序的,默认值为FALSE
g1
g2
g3
本部分的结果情形如下图所示:
因子的索引
fc1[1] #访问输出第一个水平
fc1[1:3] #访问输出1~3个水平
fc1[c(1, 4, 7)] #访问输出第1,4,7个水平值
fc1[-1] #排除第一个
fc1[-c(1:4)] #排除第1~4个
fc1[fc1 != 1] #过滤掉等于1的因子水平
fc3[fc3 > 'Junior'] #对于有序因子可以使用>,>=,
注意:因为因子一般表示名义变量或有序变量,如非有序因子,则使用>,>=,
本部分执行情况如下图所示:
因子的修改
fc1[1]
fc1[1:3]
fc1[-1]
fc1[-c(1,4,7)]
执行情况如下:
-------------------
欢迎关注本号,本号近期持续更新R语言的内容。从简入深,从基本语法到实际的数据分析应用。返回搜狐,查看更多
责任编辑: