本内容是对《Advance R》书的第一章第三节关于Vector的学习笔记。想要看原文的可以去:https://adv-r.hadley.nz/

向量的分类

通过下面的图,我们可以看到,R数据类型当中的向量包括原向量以及列表。这两者的区别在于,前者接受相同的数据类型。后者可以包含不同的数据类型。

原向量

原向量的三种数据类型:

三种类型

三种类型

  1. 逻辑型:这种数据可以通过TRUE/FALSE来表示,或者可以简写为T/F
  2. 字符型:这种数据类型就是不同的字符,需要注意的是字符上需要加双/单引号
  3. 数字型:这种数据类型包括两种类型: 3.1 整数型:整数型可以通过数字后面加L表示。例如1L 3.2 数字型:这种就是普通的数字,另外还有三种特殊的数字:Inf; -Inf以及NaN(not a number)

长向量

我们通过c()来链接向量进而组成长向量。 我们可以通过typeof检查向量的类型;通过length查看向量的长度

缺失值

R里面用NA来表示缺失值。 在包含很多缺失值的数据进行操作的时候,往往会得到的结果为缺失值:

NA > 5
## [1] NA
10 * NA
## [1] NA
!NA
## [1] NA

另外还有一些特例,这些特例是适用所有情况的情况下成立的

NA ^ 0
## [1] 1
NA | T
## [1] TRUE
NA & F
## [1] FALSE

如果我们要检查数据里面是否有缺失值,那么使用的是is.na而不是x == NA

x <- c(NA, 5, NA, 10)
x == NA
## [1] NA NA NA NA
is.na(x)
## [1]  TRUE FALSE  TRUE FALSE

数据类型检测和转换

对于原向量而言,其包含有相同的数据类型,如果数据类型不一致会进行强制转换。其转换的顺序是:字符>双精度>整数>逻辑

c("a",1)
## [1] "a" "1"

我们可以通过is.*来检测某一向量是不是某一类型。通过as.*来转换变量类型。

PS:如果我们需要把一个数字的因子变量转换为数字的话,需要做的是先转换为字符再转换为数字

数据框和tibbles

data.frametibbles其实就是另外一种类型的list。相较于list,他们的结构是等长等宽。

dataframe

dataframe