6. 因子(farcor)
在R语言中,因子是用来处理分类数据的,分类数据又可以分为有序和无序。我们可以把因子简单理解为整数向量+标签。比如,我们把性别(男,女)分别加上标签(1和2),那么1就代表男,2就代表女。
(1)如何创建因子
# 使用factor()函数创建因子
> x <-factor(c("female","female","male","male","female"))
> x
[1] female female male male female #因子的内容
Levels: female male #因子包含两个水平
# 创建因子时添加标签
> y<-factor(c("female","female","male","male","female"),levels = c("male","female")) # 使用levels()添加水平参数
> y
[1] female female male male female #因子的内容不变
Levels: male female # 水平的顺序发生了改变
当我们使用R进行统计分析时,可以通过因子指定分析的基线水平,这在统计分析中时非常重要的。
(2)对因子的操作
# 使用table()函数统计因子各水平的个数
> table(y)
y
male female
2 3
# 使用unclass()函数去掉因子的水平
> unclass(y)
[1] 2 2 1 1 2
attr(,"levels")
[1] "male" "female"
前面我们提高过,可以把因子简单理解为整数向量+标签。如果使用uncalss()
函数去掉因子的水平后,再查看其属性,会发生什么呢?
> class(unclass(y))
[1] "integer" #变成了整数型向量
7.缺失值(missing value)
在R中缺失值有两种表示方式:NaN和NA。NaN一般用来表示数字的缺失,而NA可用来表示多种类型的缺失。因此,NA具有类型属性,比如integer NA(整数缺失)和character NA(字符缺失)等。
判断向量中是否含有与缺失值
# 创建一个含有NA类型缺失值的向量
> x<- c(1,2,NA,3,NA,5)
> is.na(x) # 使用is.na()函数查看是否含有NA
[1] FALSE FALSE TRUE FALSE TRUE FALSE
> is.nan(x) #使用is.nan()查看是否含有NaN
[1] FALSE FALSE FALSE FALSE FALSE FALSE
# 创建一个含有NaN和NA类型缺失值的向量
> x<- c(1,2,NA,3,NaN,5)
> is.na(x) # 使用is.na()函数查看是否含有NA
[1] FALSE FALSE TRUE FALSE TRUE FALSE
> is.nan(x)
[1] FALSE FALSE FALSE FALSE TRUE FALSE #使用is.nan()查看是否含有NaN
以上例子说明,is.na()函数可识别NA和NaN类型的缺失值,而is.nan()函数只能识别NaN类型的缺失值,而不能识别NA类型的缺失值。这也说明了,NA包含NaN。
8.数据框(data frame)
在R中,数据框是用来存储表格数据的。我们可以把数据框看做各元素长度相同的列表,每个元素代表一列数据,每个元素的长度代表行数,并且元素的类型可以不同。
(1)数据框的创建
# 使用data.frame()函数创建数据框
> def <- data.frame(id=c(1,2,3,4),name=c("a","b","c","d"),gender=c(TRUE,FALSE,TRUE,TRUE))
> def
id name gender
1 1 a TRUE
2 2 b FALSE
3 3 c TRUE
4 4 d TRUE
由上面输出的结果可以看到,我们定义的第一个元素为数据框的第一列,第二个元素时数据框的第二列,第三个元素时数据框的第三类。并且,数据框和矩阵非常相似,所不同的是,矩阵中每一列中元素的类型都是一样的,而数据框可以不同。
同时,我们还可以把数据框看成列表,数据框的第一列对应于列表的第一个元素,数据框的第二列对应于列表的第二个元素,数据框的第三类对应于列表的第三个元素:
> def2 <- list(id=c(1,2,3,4),name=c("a","b","c","d"),gender=c(TRUE,FALSE,TRUE,TRUE))
> def2
$id
[1] 1 2 3 4
$name
[1] "a" "b" "c" "d"
$gender
[1] TRUE FALSE TRUE TRUE
注:本文为我在慕课网课程R语言基础的学习笔记,使用Markdown写作。
网友评论