文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

R语言数据类型与相应运算的示例分析

2023-06-29 09:27

关注

这篇文章主要为大家展示了“R语言数据类型与相应运算的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“R语言数据类型与相应运算的示例分析”这篇文章吧。

一、常量与变量

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.25x6 = sqrt(x5)

二、数据类型

        R 语言基本的数据类型有数值,逻辑型(TRUE, FALSE),文本(字符串)。支持缺失值,有专门的复数类型。         

        R 语言数据结构包括向量,矩阵和数据框,多维数组,列表,对象等。数据中元素、行、列还可以用名字访问。最基本的是向量类型。向量类型数据的访问方式也是其他数据类型访问方式的基础。

三、数值型向量

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

3.1 c() 函数

c() 函数把多个元素或向量组合成一个向量。如:

marks <- c(10, 6, 4, 7, 8)marks

返回:

R语言数据类型与相应运算的示例分析

再如: 

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

返回:

R语言数据类型与相应运算的示例分析

 再如:

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

返回:

R语言数据类型与相应运算的示例分析

3.2 length(x)

        length(x) 可以求 x 的长度

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

返回:

R语言数据类型与相应运算的示例分析

3.3 numeric()

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

numeric(10)

返回:

R语言数据类型与相应运算的示例分析

四、向量运算

1.标量和标量运算

        单个数值称为标量,R 没有单独的标量类型,标量实际是长度为 1 的向量。 R 中四则运算用 + - * / &circ; 表示 (加、减、乘、除、乘方),如

1.5 + 2.3 - 0.6 + 2.1*1.2 - 1.5/0.5 + 2^3## [1] 10.72

返回:

R语言数据类型与相应运算的示例分析

        R 中四则运算仍遵从通常的优先级规则,可以用圆括号 () 改变运算的先后次序。如

1.5 + 2.3 - (0.6 + 2.1)*1.2 - 1.5/0.5 + 2^3## [1] 5.56

        除了加、减、乘、除、乘方,R 还支持整除运算和求余运算。用%/% 表示整除, 用%% 表示求余。如

5 %/% 3## [1] 15 %% 3## [1] 2

返回:

R语言数据类型与相应运算的示例分析

2.向量与标量运算

        向量与标量的运算为每个元素与标量的运算, 如

x <- c(1, 10) x + 2## [1] 3 12x - 2## [1] -1 8x * 2## [1] 2 20x / 2## [1] 0.5 5.0x ^ 2## [1] 1 1002 / x## [1] 2.0 0.22 ^ x## [1] 2 1024x %% 2##[1] 1 0x %/% 2##[1] 0 5

返回:

R语言数据类型与相应运算的示例分析

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

c(1, NA, 3) + 10

返回:

R语言数据类型与相应运算的示例分析

3.等长向量运算

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

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

返回:

R语言数据类型与相应运算的示例分析

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

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

4.不等长向量的运算

        两个不等长向量的四则运算,如果其长度为倍数关系,规则是每次从头重复利用短的一个。如:

x1 <- c(10, 20)x2 <- c(1, 3, 5, 7)x1 + x2

返回:

R语言数据类型与相应运算的示例分析

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

c(1,2) + c(1,2,3)

返回:

R语言数据类型与相应运算的示例分析

五、向量函数

1.向量化的函数

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

sqrt(c(1, 4, 6.25))

返回:

R语言数据类型与相应运算的示例分析

        为了查看这些基础的数学函数的列表,运行命令 help.start(),点击链接 “Search Engine and Keywords”,找到 “Mathematics” 栏目,浏览其中的 “arith” 和 “math” 链接中的说明。

常用的数学函数有:常用的数学函数有:
&bull; 舍入:ceiling, floor, round, signif, trunc, zapsmall
&bull; 符号函数 sign
&bull; 绝对值 abs
&bull; 平方根 sqrt
&bull; 对数与指数函数 log, exp, log10, log2
&bull; 三角函数 sin, cos, tan
&bull; 反三角函数 asin, acos, atan, atan2
&bull; 双曲函数 sinh, cosh, tanh
&bull; 反双曲函数 asinh, acosh, atanh
有一些不太常用的数学函数
&bull; 贝塔函数 beta, lbeta
&bull; 伽 玛 函 数 gamma, lgamma, digamma, trigamma, tetragamma, pentagamma
&bull; 组合数 choose, lchoose
&bull; 富利叶变换和卷积 fft, mvfft, convolve
&bull; 正交多项式 poly
&bull; 求根 polyroot, uniroot
&bull; 最优化 optimize, optim
&bull; Bessel 函数 besselI, besselK, besselJ, besselY
&bull; 样条插值 spline, splinefun
&bull; 简单的微分 deriv

        如果自己编写的函数没有考虑向量化问题,可以用 Vectorize() 函数将其转换成向量化版本。

2.排序函数

        sort(x) 返回排序结果。rev(x) 返回把各元素排列次序反转后的结果。order(x) 返回排序用的下标。如

x <- c(33, 55, 11)sort(x)## [1] 11 33 55rev(sort(x))## [1] 55 33 11order(x)## [1] 3 1 2x[order(x)]## [1] 11 33 55

返回:

R语言数据类型与相应运算的示例分析

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

3.统计函数

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

        cumsumcumprod 计算累加和累乘积。如

cumsum(1:5)

返回:

R语言数据类型与相应运算的示例分析

cumprod(1:5)

返回:

R语言数据类型与相应运算的示例分析

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

4.生成规则序列的函数

seq 函数是冒号运算符的推广。比如

seq(5)seq(2,5)seq(11, 15, by=2)#产生从 0 到 2π 的等间隔序列,序列长度指定为 100seq(0, 2*pi, length.out=100)

返回:

R语言数据类型与相应运算的示例分析

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

seq(to=5, from=2)

返回:

R语言数据类型与相应运算的示例分析

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

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

rep(c(1,3), 2)

返回:

R语言数据类型与相应运算的示例分析

 再比如:

rep(c(1,3), c(2,4))

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

R语言数据类型与相应运算的示例分析

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

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

返回:

R语言数据类型与相应运算的示例分析

六、 复数向量

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

complex(c(1,0,-1,0), c(0,1,0,-1))

返回:

R语言数据类型与相应运算的示例分析

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

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

返回:

R语言数据类型与相应运算的示例分析

        用 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)

返回:

R语言数据类型与相应运算的示例分析

练习

显示 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语言数据类型与相应运算的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯