R语言 因素
R编程语言中的因子 是一种数据结构,用于对数据进行分类或表示分类数据并将其存储在多个层次上。
它们可以被存储为整数,每个独特的整数都有一个相应的标签。尽管因子看起来类似于字符向量,但它们是整数,在将它们作为字符串使用时必须注意。因子只接受有限数量的独特值。例如,像性别这样的数据字段可能只包含女性、男性或跨性别的值。
在上面的例子中,所有可能的情况都是事先知道的,并且是预定义的。这些不同的值被称为级别。在一个因子被创建后,它只由默认按字母顺序排序的层次组成。
R语言 因子的属性
- x: 它是需要转换为因子的向量。
- Levels: 它是一组不同的值,是给输入向量x的。
- Labels: 它是一个对应于标签数量的字符向量。
- Exclude: 这将提到你想排除的所有值。
- Ordered: 这个逻辑属性决定层次是否有序。
- nmax: 它将决定最大层次数的上限。
在R编程语言中创建一个因子
用于在R语言中创建或修改一个因子的命令是 - factor() ,输入一个向量。
创建一个因子的两个步骤是。
- 创建一个向量
- 使用函数factor()将创建的向量转换为一个因子
例子。让我们创建一个有女性、男性和变性人级别的因子gender。
# Creating a vector
x < -c("female", "male", "male", "female")
print(x)
# Converting the vector x into a factor
# named gender
gender < -factor(x)
print(gender)
输出
[1] "female" "male" "male" "female"
[1] female male male female
Levels: female male
级别也可以由程序员预先定义。
# Creating a factor with levels defined by programmer
gender <- factor(c("female", "male", "male", "female"),
levels = c("female", "transgender", "male"));
gender
输出
[1] female male male female
Levels: female transgender male
此外,人们可以通过使用函数 level() 来检查一个因子的水平 。
R语言 检查一个因子
函数 is.factor() 用于检查变量是否是一个因子,如果是一个因子则返回 “TRUE”。
gender <- factor(c("female", "male", "male", "female"));
print(is.factor(gender))
输出
[1] TRUE
函数 class() 也被用来检查变量是否为因子,如果为真则返回 “因子”。
gender <- factor(c("female", "male", "male", "female"));
class(gender)
输出
[1] "factor"
R语言 访问一个因子的元素
就像我们访问向量的元素一样,我们访问因子的元素的方式也是如此。如果性别是一个因子,那么gender[i]将意味着访问因子中的第 i个 元素。
例子
gender <- factor(c("female", "male", "male", "female"));
gender[3]
输出
[1] male
Levels: female male
一次可以访问一个以上的元素。
例子
gender <- factor(c("female", "male", "male", "female"));
gender[c(2, 4)]
输出
[1] male female
Levels: female male
例子
gender <- factor(c("female", "male", "male", "female" ));
gender[-3]
输出
[1] female male female
Levels: female male
R语言 修改一个因子
一个因子形成后,它的组成部分可以被修改,但需要分配的新值必须是在预定的水平上。
例子
gender <- factor(c("female", "male", "male", "female" ));
gender[2]<-"female"
gender
输出
[1] female female male female
Levels: female male
对于选择因子gender中除第i个元素以外的所有元素,应该使用gender[-i]。因此,如果你想修改一个因子,并在预先定义的级别之外增加值,那么首先要修改级别。
例子
gender <- factor(c("female", "male", "male", "female" ));
# add new level
levels(gender) <- c(levels(gender), "other")
gender[3] <- "other"
gender
输出
[1] female male other female
Levels: female male other
数据框中的因素
数据框架类似于一个二维数组,列中包含一个变量的所有值,行中有每一列的一组值。关于数据框架,有四件事需要记住。
- 列名是强制性的,不能是空的。
- 应该为每一行指定唯一的名称。
- 数据框的数据只能是三种类型–因子、数字和字符类型。
- 每一列中必须有相同数量的数据项。
在R语言中,当我们创建一个数据框时,它的列是分类数据,因此会自动创建一个因子。
我们可以创建一个数据框,并检查它的列是否是一个因子。
例子
age <- c(40, 49, 48, 40, 67, 52, 53)
salary <- c(103200, 106200, 150200,
10606, 10390, 14070, 10220)
gender <- c("male", "male", "transgender",
"female", "male", "female", "transgender")
employee<- data.frame(age, salary, gender)
print(employee)
print(is.factor(employee$gender))
输出
age salary gender
1 40 103200 male
2 49 106200 male
3 48 150200 transgender
4 40 10606 female
5 67 10390 male
6 52 14070 female
7 53 10220 transgender
[1] TRUE