梦入琼楼寒有月,行过石树冻无烟

R 数据类型与数据结构

数据类型和其他函数

在R语言之中,与其他的语言进行相比,其中主要分为了数值(numeric)、字符(character)、日期(date)、布尔(logical)四种等数据类型,我们可以通过不同的函数对直进行判断等。

is.type(values)

is.numeric (数字型)

is.numeric通常的使用语法为is.numeric(values),即翻译做(values)是不是为numeric即数值型,通常会返回布尔型的数据分别为 true and false,如:

1
2
3
> one <- 10
> is.numeric(one)
[1] TRUE
1
2
3
> two <- "hello"
> is.numeric(two)
[1] FALSE

is.character (字符串)

在这里我们需要注意的是,在赋值给two的字符串数据是需要使用""的,因为他是字符串类型的数据,而不是数值型。

1
2
is.character(two)
[1] TRUE

is.logical (布尔型)

由于R语言是严格区分大小写的,如你赋值给t是true,则r会报错,因为他判定这是一个字符串类型,但是你如果是大些的TRUE,他则会判断这是一个布尔型数据如:

1
2
3
4
5
> t <- true
Error: object 'true' not found
> t <- TRUE
> is.logical(t)
[1] TRUE

class(values)

class(values)与is.type(values)的不同之处在于,class(values)则是告诉你该直的数据的类型信息,通过使用class可以查看特定直的数据类型,如:

Date

1
2
> class(date)
[1] "Date"
ID DA FA
%H 小时 基础格式
%M 分钟
%S 秒时
%B 月份
%A 星期
%Y 年份
%p 上午和下午
%x 直接显示日期 完整格式
%c 直接显示日期与时间
%Y 完整年份
as.integer()

character

在r语言中,时间类型是一个极为特别的,我们可以通过class告诉我们某个直的数据类型,但是如果要输出,我们可以使用r语言中的as.integer函数进行输出,其中的基本格式为

as.integer(strftime(values,’date参数’)

1
2
3
4
> date <- as.Date("2021-1-28")

> as.integer(strftime(date,'%Y'))
[1] 2021

我们可以根据对照上访的date数据表中的各个参数进行输出,但需要注意的是本书所提供的并不是date的全部参数,而是较为主要和常用的几个参数,读者可自行前往了解即可。

mode(values)

mode与class类似,也是直接告诉我们当前values的类型,通过使用mode\class我们都可以直接查询该values的数据类型,如本次我们以创建的向量为例:

1
2
> mode(a)
[1] "numeric"

而向量内的数据为1 2 3,所以被输出为数字型。

数据结构

在目前流行的语言之中,日R语言的殊绝结构可以说是相当的丰富且不同,主要分为向量(vector)、列表(list)、因子(factor)、矩阵(matrix)、数组(array)、数据框(data.frame)等六种类型。

向量

向量主要用于存储数值,字符型或逻辑数据的一维数组,执行组合功能的函数c()可以用于创建向量,单个向量中的数据类型是固定的,比如数值型向量中的元素就必须为向量。向量是组成R语言的一种最为常见的数据结构,分为三种类型分别为数值型、字符型、逻辑型等。
在R语言之中,创建向量的方式有很多函数都可以进行创建,分别为c()、seq()、rep()等函数可用于进行创建,本次我们将会使用c()进行演示创建向量。

c()

在R语言之中,我们可以使用c()创建一个向量

创建
1
2
3
4
5
6
7
> c(1,2,3)
[1] 1 2 3
```
这个时候我们会发现,所输出的向量也仅仅是输出,那么怎么让他们存储成一个直,我们可以使用赋值(=)即可:
##### 创建并存储
```r
> a = c(1,2,3)
输出存储于直中的向量
1
2
> a[a>0]
[1] 1 2 3
索引向量

在R语言之中,我们可以索引向量,这比较类似于Python之中的字典,但又与python中的字典不同:

1
2
3
4
> c <- c(one=1.2,two=2.1,three=10,1)
> c["one"]
one
1.2
向量的长度 (length)

在r语言之中,为向量提供了一个长度查询与输出的一个函数,为length(),这个函数是单独为向量所提供长度查询的,结果如下:

1
2
> length(c)
[1] 4
向量的运算符

通常,在基本上所有的语言之中,运算符都会被通用,就是说基本上都适用,所以我们也可以进行向量和向量之间运算,如:

1
2
3
4
> a = c(1,3,4)
> b = c(1,3,4)
> a+b
[1] 2 6 8
⬅️ Go back