目录

一、常量与变量

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 中。

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

  1. R语言基础入门(全)

    R 是门语言,也是个环境.个人认为R有点像matlab. R自带多种统计学及数字分析功能.R的功能也可以通过安装包(Packages,用户撰写的功能)增强,个人感觉这个就是插件.因为S的血缘,R比其他 ...

  2. R语言基础入门(学习笔记通俗易懂版)

    文章目录 R语言预备知识 获取工作目录 设置工作目录 注释 变量名的命名 赋值 变量的显示 查看与清除变量 函数帮助文档查询 函数 安装R包 文件的读取 文件的输出 软件的退出与保存 R语言语法 向量 ...

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

    目录 1.存储模式与基本类型 2.类属 3.类型转换 4.属性 5.str() 函数 6.关于赋值 1.存储模式与基本类型 R语言中根据类型可以将数据划分为: 数值型(numeric) 整数型(int ...

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

    目录 一.逻辑型向量与比较运算 二. 逻辑运算 三.逻辑运算函数 一.逻辑型向量与比较运算         逻辑型是 R 的基本数据类型之一,只有两个值 TRUE 和 FALSE, 缺失时为 NA. ...

  5. R语言 ---- 基础入门

    (一)向量 赋值: > x <- c(1,2,3,4,5) # 使用<-赋值,c表示连接 > x [1] 1 2 3 4 5> y <- c(x,6,7,8) &g ...

  6. R语言基础入门(10)之矩阵和数组

    目录 1.矩阵 创建矩阵 查看矩阵的行与列数 转置 2.矩阵子集 3.矩阵行列命名 4.命名后取子集 5.逻辑下标取子集 6.正整数向量的矩阵取子集 7.返回对角线向量 8.创建单位矩阵 9.cbin ...

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

    目录 1.因子 2.table() 函数 3.tapply() 函数 4.forcats 包的因子函数 练习 1.因子         R 中用因子代表数据中分类变量, 如性别.省份.职业.有序因子代 ...

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

    目录 1.正整数下标 2.负整数下标 3.空下标与零下标 4.下标超界 5.逻辑下标 6. which().which.min().which.max() 函数 7. 元素名 8.用 R 向量下标作映 ...

  9. R语言基础入门,看这里!

最新文章

  1. SpringCloud学习笔记(1)- Spring Cloud Alibaba
  2. 情绪对使用产品的影响——读《设计心理学》
  3. oracle教程之创建自己的锁定
  4. 计算机辅助英语教学电子版,计算机辅助英语教学探究.pdf
  5. ThinkPHP完美实现分页和美化
  6. 【免费】文字转换语音合成软件地摊叫卖录音真人配音广告制作朗读播音软件
  7. 【有利可图网】PS实战教程28:巧用调整边缘滤镜抠毛发
  8. Android系统下扫描枪的设置
  9. 世界你好python_Python基础01之“你好世界”
  10. 平安京服务器维护,决战平安京无法登陆怎么解决 无法登陆原因及解决方案一览...
  11. Outlook设置自动存档
  12. 制作rime配色的fcitx皮肤
  13. 手机wap端用户注册表单(html+css)
  14. 云鲸扫拖一体机器人说明书_比老公更好用的扫拖一体机——自动洗拖布的云鲸扫拖机器人使用体验...
  15. word文档另存为pdf格式,如何设置导航栏
  16. 四平博达学院计算机社团,民盟四平市委博达学院支部举行换届会议
  17. 618闭着眼睛买都不会错的三款好物!当贝投影最推荐?!
  18. Flask电影网站项目
  19. 利用Java Swing技术设计一个Email邮箱地址注册的图形用户界面应用程序
  20. idea 社区版 反向代理工具激活jrebel

热门文章

  1. Win10如何设置IE为默认浏览器
  2. c:forecah 参数param 不能作为对象名
  3. SpringMVC+uploadify文件上传
  4. vue-cli3+与vue-cli2的区别和vue-cli 修改配置
  5. Video在网页和移动端无法自动播放问题??
  6. matlab读取suffer,MATLAB调用surfer时出错
  7. get请求,参数值为json字符串如何传值
  8. 为什么Controller层注入的是Service接口,而不是ServiceImpl实现类
  9. Java SSM篇3——Mybatis
  10. react 子传参父_React 子组件向父组件传值的方法