本内容是对《Advance R》书的第一章第三节关于
Vector的学习笔记。想要看原文的可以去:https://adv-r.hadley.nz/
通过下面的图,我们可以看到,R数据类型当中的向量包括原向量以及列表。这两者的区别在于,前者接受相同的数据类型。后者可以包含不同的数据类型。
三种类型
TRUE/FALSE来表示,或者可以简写为T/FL表示。例如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:如果我们需要把一个数字的因子变量转换为数字的话,需要做的是先转换为字符再转换为数字。
data.frame和tibbles其实就是另外一种类型的list。相较于list,他们的结构是等长等宽。
dataframe