第二章:数据类型 第一节:变量

前言

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或者多种特定关系的数据元素集合

数据框、矩阵、列表、数组

普通数据结构:向量、标量、列表、数组、多维数组

特殊数据结构: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个逻辑值,因此只能输出一个值,对于两个逻辑值会警告,只能选择第一元素进行比较

而&可以运算多个

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

相关推荐
fengfuyao98527 分钟前
基于MATLAB的GUI实现人脸检测、眼睛检测以及LBP直方图显示
开发语言·计算机视觉·matlab
CHANG_THE_WORLD44 分钟前
# C++ 中的 `string_view` 和 `span`:现代安全视图指南
开发语言·c++
Franklin1 小时前
Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小
开发语言·python·qt
郝学胜-神的一滴1 小时前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生
柯南二号2 小时前
【Java后端】MyBatis-Plus 原理解析
java·开发语言·mybatis
我是哈哈hh2 小时前
【Node.js】ECMAScript标准 以及 npm安装
开发语言·前端·javascript·node.js
Sammyyyyy4 小时前
2025年,Javascript后端应该用 Bun、Node.js 还是 Deno?
开发语言·javascript·node.js
William一直在路上5 小时前
Python数据类型转换详解:从基础到实践
开发语言·python
看到我,请让我去学习5 小时前
Qt— 布局综合项目(Splitter,Stacked,Dock)
开发语言·qt
GUET_一路向前5 小时前
【C语言防御性编程】if条件常量在前,变量在后
c语言·开发语言·if-else·防御性编程