R学习:R for Data Science 向量(1)

R学习往期回顾:

R学习 从Tidyverse学起,入门R语言 dplyr合并数据

R学习 流程控制 if,else,ifelse

R学习 从Tidyverse学起,入门R语言(tidyr和stringr)

R学习 从Tidyverse学起,入门R语言(tibble,readr和dplyr)

R学习:字符串

R学习:环境和函数

R学习:数据框的基本操作

R学习:R for Data Science(五)

R学习:R for Data Science(四)

R学习:R for Data Science(三)

R学习:R for Data Science(二)

R学习:R for Data Science(一)

向量基础

向量的类型主要有两种 · 原子向量,其共有 6 种类型:逻辑型、 整型、 双精度型、 字符型、 复数型和原始型。整型和双精度型向量又统称为数值型向量。

· 列表,有时又称为递归向量,因为列表中也可以包含其他列表。

原子向量与列表之间的主要区别是,原子向量中的各个值都是同种类型的,而列表中的各个值可以是不同类型的。NULL 是一个与向量相关的对象,用于表示空向量(与表示向量中的一个值为空的 NA 不同),通常指长度为 0 的向量。

每个向量都有两个关键属性
· 类型。你可以使用 typeof() 函数来确定向量的类型:

library(tidyverse)typeof(letters)#> [1] "character"typeof(1:10)#> [1] "integer"

· 长度。你可以使用 length() 函数来确定向量的长度 :

x <- list("a", "b", 1:10)length(x)#> [1] 3

还可以向向量中任意添加额外的元数据,这些元数据称为特性。特性可以用来创建扩展向量,以执行一些新的操作。比较重要的扩展向量有 4 种类型。
· 基于整型向量构建的因子。
· 基于数值型向量构建的日期和日期时间。
· 基于列表构建的数据框和 tibble。

重要的原子向量

4 种最重要的原子向量类型是逻辑型、整型、双精度型和字符型。

逻辑型

1:10 %% 3 == 0#> [1] FALSE FALSE TRUE FALSE FALSE#> [2] TRUE FALSE FALSE TRUE FALSEc(TRUE, TRUE, FALSE, NA)#> [1] TRUE TRUE FALSE NA

数值型

整型与双精度型向量统称为数值型向量。R 中默认数值是双精度型的。如果想要创建整型数值,可以在数字后面加一个 L

整型和双精度型之间的区别一般并不重要,但你需要注意其中两个重要区别。

· 双精度型是近似值。双精度型表示的是浮点数,不能由固定数量的内存精确表示。这意味着你应该将所有双精度数当成近似值。例如, 2 的平方根的平方是多少?

x <- sqrt(2) ^ 2x#> [1] 2x - 2#> [1] 4.44e-16

在处理浮点数时,这种现象非常普遍:多数计算都包括一些近似误差。在比较浮点数时,不能使用 ==,而应该使用 dplyr::near(),后者可以容忍一些数据误差

整型数据有 1 个特殊值 NA,而双精度型数据则有 4 个特殊值:NA、 NaN、 Inf 和 -Inf。其他 3 个特殊值都可以由除法产生:

c(-1, 0, 1) / 0#> [1] -Inf NaN Inf

不要使用 == 来检查这些特殊值,而应该使用辅助函数 is.finite()、 is.infinite() 和is.nan()

字符型

字符向量是最复杂的一种原子向量,因为其每个元素都是一个字符串,而字符串可以包含任意数量的数据。

缺失值

每种类型的原子向量都有自己的缺失值

NA # 逻辑型#> [1] NANA_integer_ # 整型#> [1] NANA_real_ # 双精度型#> [1] NANA_character_ # 字符型#> [1] NA

公众号“生信小课堂”

TCGA数据分析大全

零代码1-2分SCI生信分析教学

(0)

相关推荐