R语言基础入门(3)之数据类型与相应运算1

目录

一、常量与变量

1.常量

2.变量      

二、数据类型

三、数值型向量

3.1 c() 函数

3.2 length(x)

3.3 numeric()

四、向量运算

1.标量和标量运算

2.向量与标量运算

3.等长向量运算

4.不等长向量的运算

五、向量函数

1.向量化的函数

2.排序函数

3.统计函数

4.生成规则序列的函数

六、 复数向量

练习


一、常量与变量

1.常量

        R 语言基本的数据类型有数值型,逻辑型(TRUE, FALSE),文本(字符串)。 支持缺失值,有专门的复数类型。
        常量是指直接写在程序中的值。
        数值型常量包括整型、单精度、双精度等,一般不需要区分。写法如 123, 123.45, -123.45,-0.012, 1.23E2, -1.2E-2 等。为了表示 123 是整型,可以写成 123L。
        字符型常量用两个双撇号或两个单撇号包围,如"Li Ming" 或'Li Ming'。字符型支持中文,如"李明" 或'李明'。国内的中文编码主要有 GBK 编码和 UTF-8 编码,有时会遇到编码错误造成乱码的题,MS Windows 下 R 程序 一般用 GBK 编码,但是 RStudio 软件采用 UTF-8 编码。在 R 软件内字符串一般用 UTF-8 编码保存。
        逻辑型常量只有 TRUE 和 FALSE。
        缺失值NA 表示。统计计算中经常会遇到缺失值,表示记录丢失、因为错误而不能用、节假日没有数据等。除了数值型,逻辑型和字符型也可以有缺失值,而且字符型的空白值不会自动辨识为缺失值,需要自己规定。R 支持特殊的 Inf 值,这是实数型值,表示正无穷大,不算缺失值。

         复数常量写法如 2.2 + 3.5i, 1i 等。

2.变量      

        程序语言中的变量用来保存输入的值或者计算得到的值。在 R 中,变量可以保存所有的数据类型,比如标量、向量、矩阵、数据框、函数等。
        变量都有变量名,R 变量名必须以字母、数字、下划线和句点组成,变量名的第一个字符不能取为数字。在中文环境下,汉字也可以作为变量名的合法字符使用。变量名是区分大小写的,y 和 Y 是两个不同的变量名。
        变量名举例: x, x1, X, cancer.tab, clean_data, diseaseData。
        用 <-赋值的方法定义变量。<-也可以写成 =,但是 <-更直观。如
x5 <- 6.25
x6 = sqrt(x5)

二、数据类型

        R 语言基本的数据类型有数值,逻辑型(TRUE, FALSE),文本(字符串)。支持缺失值,有专门的复数类型。
        R 语言数据结构包括向量,矩阵和数据框,多维数组,列表,对象等。数据中元素、行、列还可以用名字访问。最基本的是向量类型。向量类型数据的访问方式也是其他数据类型访问方式的基础。

三、数值型向量

        向量是将若干个基础类型相同的值存储在一起,各个元素可以按序号访问。如 果将若干个数值存储在一起可以用序号访问,就叫做一个数值型向量。

3.1 c() 函数

c() 函数把多个元素或向量组合成一个向量。如:
marks <- c(10, 6, 4, 7, 8)
marks

返回:

再如: 

x <- c(1:3, 10:13)
x

返回:

 再如:

x1 <- c(1, 2)
x2 <- c(3, 4)
x <- c(x1, x2)
x

返回:

3.2 length(x)

        length(x) 可以求 x 的长度

x <- c(1:3, 10:13)
length(x)

返回:

3.3 numeric()

        numeric() 函数可以用来初始化一个指定元素个数而元素都等于零的数值型向量,如 numeric(10) 会生成元素为 10 个零的向量,长度为零的向量表示为 numeric(0)。

numeric(10)

返回:

四、向量运算

1.标量和标量运算

        单个数值称为标量,R 没有单独的标量类型,标量实际是长度为 1 的向量。 R 中四则运算用 + - * / ˆ 表示 (加、减、乘、除、乘方),如
1.5 + 2.3 - 0.6 + 2.1*1.2 - 1.5/0.5 + 2^3
## [1] 10.72

返回:

 

        R 中四则运算仍遵从通常的优先级规则,可以用圆括号 () 改变运算的先后次序。如
1.5 + 2.3 - (0.6 + 2.1)*1.2 - 1.5/0.5 + 2^3
## [1] 5.56
        除了加、减、乘、除、乘方,R 还支持整除运算和求余运算。用%/% 表示整除, 用%% 表示求余。如
5 %/% 3
## [1] 1
5 %% 3
## [1] 2

返回:

2.向量与标量运算

        向量与标量的运算为每个元素与标量的运算, 如
x <- c(1, 10) x + 2
## [1] 3 12
x - 2
## [1] -1 8
x * 2
## [1] 2 20
x / 2
## [1] 0.5 5.0
x ^ 2
## [1] 1 100
2 / x
## [1] 2.0 0.2
2 ^ x
## [1] 2 1024
x %% 2
##[1] 1 0
x %/% 2
##[1] 0 5

返回:

一个向量乘以一个标量,就是线性代数中的数乘运算
四则运算时如果有缺失值,缺失元素参加的运算相应结果元素仍缺失。如
c(1, NA, 3) + 10

返回:

3.等长向量运算

等长向量的运算为对应元素两两运算。如

x1 <- c(1, 10)
x2 <- c(4, 2)
x1 + x2

返回:

同样也可以进行减,乘,除;如

x1 - x2
## [1] -3 8
x1 * x2
## [1] 4 20
x1 / x2
## [1] 0.25 5.00

4.不等长向量的运算

        两个不等长向量的四则运算,如果其长度为倍数关系,规则是每次从头重复利用短的一个。如:
x1 <- c(10, 20)
x2 <- c(1, 3, 5, 7)
x1 + x2

返回:

 

        不仅是四则运算,R 中有两个或多个向量按照元素一一对应参与某种运算或函数调用时,如果向量长度不同,一般都采用这样的规则。
        如果两个向量的长度不是倍数关系,会给出警告信息。如
c(1,2) + c(1,2,3)

返回:

五、向量函数

1.向量化的函数

        R 中的函数一般都是向量化的: 在 R 中,如果普通的一元函数以向量为自变量,一般会对每个元素计算。这样的函数包括 sqrt, log10, log, exp, sin, cos, tan 等许多。如
sqrt(c(1, 4, 6.25))

返回:

        为了查看这些基础的数学函数的列表,运行命令 help.start(),点击链接 “Search Engine and Keywords”,找到 “Mathematics” 栏目,浏览其中的 “arith” 和 “math” 链接中的说明。
常用的数学函数有:
• 舍入:ceiling, floor, round, signif, trunc, zapsmall
• 符号函数 sign
• 绝对值 abs
• 平方根 sqrt
• 对数与指数函数 log, exp, log10, log2
• 三角函数 sin, cos, tan
• 反三角函数 asin, acos, atan, atan2
• 双曲函数 sinh, cosh, tanh
• 反双曲函数 asinh, acosh, atanh
有一些不太常用的数学函数
• 贝塔函数 beta, lbeta
• 伽 玛 函 数 gamma, lgamma, digamma, trigamma, tetragamma, pentagamma
• 组合数 choose, lchoose
• 富利叶变换和卷积 fft, mvfft, convolve
• 正交多项式 poly
• 求根 polyroot, uniroot
• 最优化 optimize, optim
• Bessel 函数 besselI, besselK, besselJ, besselY
• 样条插值 spline, splinefun
• 简单的微分 deriv
        如果自己编写的函数没有考虑向量化问题,可以用 Vectorize() 函数将其转换成向量化版本。

2.排序函数

        sort(x) 返回排序结果。rev(x) 返回把各元素排列次序反转后的结果。order(x) 返回排序用的下标。如
x <- c(33, 55, 11)
sort(x)
## [1] 11 33 55
rev(sort(x))
## [1] 55 33 11
order(x)
## [1] 3 1 2
x[order(x)]
## [1] 11 33 55

返回:

      order(x)  结果中 3 是 x 的最小元素 11 所在的位置下标,1 是 x 的 第二小元素 33 所在的位置下标,2 是 x 的最大元素 55 所在的位置下标。

3.统计函数

        sum(求和), mean(求平均值), var(求样本方差), sd(求样本标准差), min(求最小值), max(求最大值), range(求最小值和最大值) 等函数称为统计函数,把输入向量看作样本,计算样本统计量。prod 求所有元素的乘积。
        cumsumcumprod 计算累加和累乘积。如
cumsum(1:5)

返回:

cumprod(1:5)

返回:

        其它一些类似函数有 pmax, pmin, cummax, cummin 等。

4.生成规则序列的函数

seq 函数是冒号运算符的推广。比如
seq(5)
seq(2,5)
seq(11, 15, by=2)
#产生从 0 到 2π 的等间隔序列,序列长度指定为 100
seq(0, 2*pi, length.out=100) 

返回:

         在使用变量名时次序可以颠倒,比如

seq(to=5, from=2)

返回:

         rep() 函数用来产生重复数值。

为了产生一个初值为零的长度为 n 的向量,用 x <- rep(0, n) 。
rep(c(1,3), 2)

返回:

 再比如:

rep(c(1,3), c(2,4))
        把第一自变量的第一个元素 1 按照第二自变量中第一个元素 2 的次数重复,把第一自变量 中第二个元素 3 按照第二自变量中第二个元素 4 的次数重复,返回:

         如 果 希 望 重 复 完 一 个 元 素 后 再 重 复 另 一 元 素, 用 each= 选 项, 比 如

rep(c(1,3), each=2)

返回:

六、 复数向量

        复数常数表示如 3.5+2.4i, 1i。用函数 complex() 生成复数向量,指定实部和虚部。如
complex(c(1,0,-1,0), c(0,1,0,-1))

返回:

         在 complex() 中可以用 modarg 指定模和辐角,如

complex(mod=1,arg=(0:3)/2*pi)

返回:

        用 Re(z) 求 z 的实部,用 Im(z) 求 z 的虚部,用 Mod(z)abs(z) 求 z 的模,用 Arg(z) 求 z 的辐角,用 Conj(z) 求 z 的共轭。
        sqrt, log, exp, sin 等函数对复数也有定义,但是函数定义域在自变量为实数时可能有限制而复数无限制,这时需要区分自变量类型。如
sqrt(-1)
sqrt(-1 + 0i)

返回:

练习

1. 显示 1 到 100 的整数的平方根和立方根(提示:立方根就是三分之一次 方)。 
2. 设有 10 个人的小测验成绩为:
        77 60 91 73 85 82 35 100 66 75
        (1) 把这 10 个成绩存入变量 x;
        (2) 从小到大排序;
        (3) 计算 order(x),解释 order(x) 结果中第 3 项代表的意义。
        (4) 计算这些成绩的平均值、标准差、最小值、最大值、中位数。
3. 生成 [0, 1] 区间上等间隔的 100 个格子点存入变量 x 中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言位运算详解

C语言位运算包括&#xff1a;按位与运算、或运算、异或运算、左移运算、右移运算。 位运算&#xff0c;就是对一个比特&#xff08;Bit&#xff09;位进行操作。比特&#xff08;Bit&#xff09;是一个电子元器件&#xff0c;8个比特构成一个字节&#xff08;Byte&#xff09;…

R语言基础入门(4)之数据类型与相应运算2

目录 一、逻辑型向量与比较运算 二、 逻辑运算 三、逻辑运算函数 一、逻辑型向量与比较运算 逻辑型是 R 的基本数据类型之一&#xff0c;只有两个值 TRUE 和 FALSE, 缺失时为 NA。逻辑值一般产生自比较&#xff0c;如sele <- (log10(15) < 2); print(sele) 返回&…

R语言基入门(5)之字符型数据及其处理

目录 1.字符型向量 2. paste() 函数 3.转换大小写 4.字符串长度 5.取子串 6. 类型转换 7. 字符串拆分 8.字符串替换功能 9.正则表达式 1.字符型向量 字符型向量是元素为字符串的向量。如s <- c(abc, , a cat, NA, 李明) s 返回&#xff1a; 2. paste() 函数 针对…

R语言基础入门(6)之向量下标和子集

目录 1.正整数下标 2.负整数下标 3.空下标与零下标 4.下标超界 5.逻辑下标 6. which()、which.min()、which.max() 函数 7. 元素名 8.用 R 向量下标作映射 9.集合运算 练习 1.正整数下标 首先定义一个x&#xff0c;然后对向量 x, 在后面加方括号和下标可以访问向量…

C语言随机数的生成

在编程中&#xff0c;我们经常需要生成随机数&#xff0c;例如&#xff0c;贪吃蛇游戏中在随机的位置出现食物&#xff0c;扑克牌游戏中随机发牌等。 在C语言中&#xff0c;我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数&#xff0c;它的用法为&#xff…

R语言基础入门(7)之数据类型的性质

目录 1.存储模式与基本类型 2.类属 3.类型转换 4.属性 5.str() 函数 6.关于赋值 1.存储模式与基本类型 R语言中根据类型可以将数据划分为&#xff1a; 数值型&#xff08;numeric&#xff09;整数型&#xff08;integer&#xff09;字符型&#xff08;character&#xff09…

C++班级通讯录

C实现班级通讯录管理系统 设计流程 本系统基于C实现班级通讯录管理系统。功能包括增、删、查、改等。通讯录包括的个人信息有姓名、学号、性别、籍贯、政治面貌、手机号、QQ号、宿舍等。主要用到了指针、结构体、遍历链表、文件读取等知识点。 优点 1 . 此系统含有欢迎使用的…

两万字教会你解析库之Beautiful Soup

目录 1.简介 2.准备工作 3.解析器 4.基本用法 5.节点选择器 5.1选择元素 5.2提取信息 5.3嵌套选择 5.4关联选择 6.方法选择器 7. css 选择器 7.1 嵌套选择 7.2 获取属性 7.3 获取文本 总结 1.简介 简单来说&#xff0c;Beautiful Soup就是Python的一个HTML或XM…

C语言实现随机抽取纸牌

程序设计要求 本程序负责发一副标准纸牌&#xff0c;每张标准纸牌都有一种花色&#xff08;梅花、方块、黑桃、红桃&#xff09;和一个等级&#xff08;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6…K,A&#xff09;。程序需要用户指明手机有几张牌。 程序设计流…

R语言基础入门(8)之日期时间

目录 1.日期和日期时间类型 2.从字符串生成日期数据 3.日期显示格式 4.访问日期时间的组成值 5.日期舍入计算 6.日期计算 6.1 时间长度 6.2 时间周期 6.3 时间区间 7.基本 R 软件的日期功能 7.1 生成日期和日期时间型数据 7.2 取出日期时间的组成值 7.3 日期计算 练…

C语言点名器

设计流程 1 . 使用求模符号“%”求模数控制随机数产生范围。 2 . 使用rand&#xff08;&#xff09;计算出一个随机数。 3 . 使用函数time()来获取时间。 4 . 用二维字符数组储存名字&#xff0c;产生范围类的随机数在用下标调用数组里面的名字。 效果展示 完整代码 #inclu…

R语言基础入门(9)之因子类型

目录 1.因子 2.table() 函数 3.tapply() 函数 4.forcats 包的因子函数 练习 1.因子 R 中用因子代表数据中分类变量, 如性别、省份、职业。有序因子代表有序量度&#xff0c;如打分结果&#xff0c;疾病严重程度等。用 factor() 函数把字符型向量转换成因子&#xff0c;如x…

2万字带你攻略掉Selenium

目录 1. 准备工作 1.1 安装selenium库 1.2 安装浏览器驱动 2. 基本用法 2.1 初始化浏览器对象 2.2 访问页面 2.3 设置浏览器大小 2.4 刷新页面 2.5 前进后退 3. 获取页面基础属性 4. 定位页面元素 4.1 id定位 4.2 name定位 4.3 class定位 4.4 tag定位 4.5 lin…

IDEA里的web.xml页面的Servlet名称报错下方出现红色下划线

错误显示 对于上述错误是因为只有新建的Servlet名称但是并没为为这个Servlet指定访问地址的路径和映射&#xff0c;我们只需要添加访问地址的路径和映射就可以解决这个问题了。 修改之后的代码 <?xml version"1.0" encoding"UTF-8"?> <web-ap…

Python之Hello World

python实现Hello World项目 在项目上点击右键New–>File,然后输入文件名Hello World 一个Hello World文件创建完成 编写相应的代码 在空白的地方右击选择Run"Hello World" 程序运行成功&#xff0c;输出Hello World

knn(k近邻算法)——python

目录 1. 基本定义 2. 算法原理 2.1 算法优缺点 2.2 算法参数 2.3 变种 3.算法中的距离公式 4.案例实现 4.1 导入相关库 4.2 读取数据 4.3 读取变量名 4.4 定义X,Y数据 4.5 分离训练集和测试集 4.6 计算欧式距离 4.7 可视化距离矩阵 4.8 预测样本 4.9 查看正确…

C语言中的文件是什么?

我们对文件的概念已经非常熟悉了&#xff0c;比如常见的 Word 文档、txt 文件、源文件等。文件是数据源的一种&#xff0c;最主要的作用是保存数据。 在操作系统中&#xff0c;为了统一对各种硬件的操作&#xff0c;简化接口&#xff0c;不同的硬件设备也都被看成一个文件。对…

knn(k近邻算法)——matlab

目录 1. 基本定义 2. 算法原理 2.1 算法优缺点 2.2 算法参数 2.3 变种 3.算法中的距离公式 4.案例实现 4.1 读取数据 4.2 分离训练集和测试集 4.3 归一化处理 4.4 计算欧氏距离 4.5 排序和输出测试结果 4.6 计算准确率 总代码 1. 基本定义 k最近邻(k-Nearest N…

C语言打开文件详解

C语言中操作文件之前必须先打开文件&#xff1b;所谓“打开文件”&#xff0c;就是让程序和文件建立连接的过程。 打开文件之后&#xff0c;程序可以得到文件的相关信息&#xff0c;例如大小、类型、权限、创建者、更新时间等。在后续读写文件的过程中&#xff0c;程序还可以记…

python turtle虎年来拜年了

1.画个虎 # codingutf-8 from turtle import * import timeCOLOR #B2814Ddef set_start(x, y, w, cCOLOR):penup()setx(x)sety(y)setheading(towards(0, 0))width(w)pencolor(c)pendown()speed(0)def left_rotate(time, angle, length):for i in range(time):left(angle)forwa…