R语言入门2:数据结构-3

作者: 曹务强 | 来源:发表于2017-11-21 22:51 被阅读20次

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写作。

相关文章

  • R语言入门2:数据结构-3

    6. 因子(farcor) 在R语言中,因子是用来处理分类数据的,分类数据又可以分为有序和无序。我们可以把因子简单...

  • R语言-0基础学习4-实战1-常见操作

    R语言学习系列R语言-0基础学习1-数据结构R语言-0基础学习2-构建子集R语言-0基础学习3-循环排序信息处理函...

  • R语言-数据结构入门-2

    开始 开始R语言的学习已经有一段时间了,正在按计划开始学习,虽然年底有点忙还是坚持按计划进行学习,这是学习的第一...

  • R语言入门2:数据结构-2

    3.矩阵(matrix) 我们可以把矩阵简单看做向量+维度属性,这个向量一般是整数向量,而维度一般包括两个属性:n...

  • 学习小组Day4笔记--扬马延

    R语言学习 1. R以及R studio安装 直接搜索R语言网页可直接安装 2. R语言入门 参考书目《R for...

  • R 语言入门:tidyverse 生态链

    说明:文章内容截选自实验楼教程【R 语言基础入门】~ 前言:本课程主要讲解包括 R 语言的基本数据结构 , tid...

  • R语言入门:基础数据结构

    说明:文章内容截选自实验楼教程【R 语言基础入门】~ 前言:本课程主要讲解包括 R 语言的基本数据结构 , tid...

  • 《学习小组Day5笔记--寒鹤》

    R语言之数据结构 今天的学习内容是R语言的数据结构。R语言的数据结构主要有向量(vector),矩阵(matrix...

  • 学习小组Day4笔记--行

    正式开始学习R语言了,今天笔记内容为R语言基础和ggplot2的入门学习 R语言基础 1、认识R与RStudio ...

  • R语言入门2:数据结构-1

    1.对象和属性 在R中有5种基本的对象类型(classes of subjects): 字符:character,...

网友评论

    本文标题:R语言入门2:数据结构-3

    本文链接:https://www.haomeiwen.com/subject/hiugvxtx.html