前言
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或者多种特定关系的数据元素集合
数据框、矩阵、列表、数组
普通数据结构:向量、标量、列表、数组、多维数组
特殊数据结构:perl中的哈希,python中的字典、c语言中的指针等
R对象
对象:object,它是指可以复制给变量的任何事物,包括常量、数据结构、函数,甚至图形。对象都拥有某种模式,描述了此对象是如何存储的,以及某个类
R中数据结构
向量,标量,矩阵,数组、列表、数据框、因子、时间序列等
一.标量
(一)赋值规则与命名规则
(1)命名规则
首先我们先了解一下R语言的命名规则,R语言采用字母、数字、下划线和实心句点组成的变量来命名、一般由字母、或实心句点开头。同时,变量名为实心句点开头的,后面不能用数字接上

(2)赋值规则
在R语言中一共由三种赋值规则,分别是<-、<<-、=。我们一般采用<-来进行赋值

额外:=,<-的区别
作为赋值运算符,=只能用于命令的最外层,而<-则可以用在任何地方,因此,若想在调用函数的同时为变量赋值,则只能使用<-。

(二)标量的定义
标量指的是只含一个元素的向量,通常用于保存常量,标量通常有以下几种类型:数值、NA、NULL、字符串、逻辑值、因子等
1.数值
在R语言中,支持整数、浮点数类型的数值,同时,在R语言中,我们有两种输出数值的方式,其一是利用print()函数来打印数值

其二,我们可以直接输出a这个变量名称来输出其包含的数值

2.NA类型
NA常量代表无数值

我们可以使用is.na()判断某个变量是否为NA

3.NULL
NULL代表NULL对象,变量未初始化时,值为NULL,我们可以用is.null()来判断变量是否保存NULL

NULL和NA的区别
NA表示的是缺失值,通常表示某个数据值的遗失,常用于由于失误导致的数据未输入;由于某些原因导致数据无法观测;由于相关项中无合适的值,导致数据未能输入。
NULL常用于编程中,用来表示数据未定义,例如以下代码中

因为无法确定is_even的初始数值是什么,所以我们先将is_even的数值赋NULL,以免造成误判
4.字符串
R语言中没有单独的字符类型,只有字符串。我们可以用一对双引号和一对单引号生成字符串类型的标量

切记不能打成中文的双引号
5.逻辑值
(1)真假值
在R语言中,我们可以使用TRUE、R来表示真值,用FALSE、F来表示假值。同时,由于T、F又可以作为全局变量名,因此这两个值是可以被赋值的

因此这边建议在大规模工程中国避开使用T和F,以免造成混乱
(2)逻辑型数据
1.对于逻辑值,在R语言中有&(AND)、|(OR)、!(NOT)这三种逻辑值可以供使用者选择
& 全真才是真

|全假才是假

!不为或者说反转

2.同时,对于AND和OR逻辑型数据,还有&&和||两种额外的形式
&&用来运算2个逻辑值,因此只能输出一个值,对于两个逻辑值会警告,只能选择第一元素进行比较

而&可以运算多个

||和|同理,在实际操作中,我们还是用&和|更多一点