【R语言入门】R语言中的变量与基本数据类型
说明
在前一篇中,我们介绍了 R
语言和 R Studio
的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R
语言的相关知识。
本篇将主要介绍 R
语言的基本操作、变量和几种基本数据类型,好对 R
语言的使用方法有一个基本的概念。通过本篇的学习,你将了解到:
R
语言有哪些基本操作- 什么是变量,以及如何给变量赋值
R
语言有哪些基本数据类型,如何确定变量的数据类型
R 语言的基本操作
R
语言的默认提示符是 >
,它表示正在等待输入命令,每次输入命令后敲击回车即可执行当前命令。
R
语言支持的基本操作主要有加、减、乘、除、取余和幂运算,对应的运算符分别为:+、-、*、/、%%、^。
加减乘除就不必多说了,但有一点需要提一下,跟许多语言不一样的是,R
语言中,除法运算得到的不是整数部分,而是包含小数部分的结果。
> 9/2
[1] 4.5
> 9/4
[1] 2.25
> 11/3
[1] 3.666667
取余运算的含义是计算整除后的余数:
> 9 %% 2
[1] 1
> 9 %% 4
[1] 1
> 9 %% 3
[1] 0
> 11 % 4
错误: unexpected input in "11 % 4"
在使用时需要注意的是有两个百分号组成,输入错误则会得上上述错误提示。
幂运算跟数学中的幂运算含义一致,2^3
代表的是2的3次幂:
> 2 ^ 3
[1] 8
> 3 ^ 2
[1] 9
> 2 ^ 10
[1] 1024
> 2 ^ 100
[1] 1.267651e+30
R 语言中的变量
在使用 R
语言时,我们通常很难一步到位得到最终的结果,需要进行一些复杂的计算。这时我们便需要使用变量来存放计算得到的中间结果。
R
语言中,可以将变量想象成一个盒子,我们可以将任何数据暂存到这个盒子里,但同一时刻,这个盒子只能保存一个数据,如果被多次赋值,则只会保存最后一次放入的数据。
R
语言中的赋值符号是 ->
,虽然也可以使用 =
进行赋值,但强烈建议不要这样做,这样不仅显得不专业,而且在一些情况下会出现问题。
> x <- 3
> x <- 4
> x <- 9
> x
[1] 9
R
语言中的变量不需要事先声明,直接使用即可。如果使用了一个之前没有出现过的变量,则会创建一个新的变量。R
语言中变量是区分大小写的,x
与 X
是两个不同的变量。
> X
错误: 找不到对象'X'
> X <- 1
> X <- 3
> X
[1] 3
> x
[1] 9
变量都是有名字的,比如x
、y
、stu_score
,变量的命名必须满足以下规则:
- 只能使用字母(区分大小写)、数字、“_”(下划线)、“.”(英文句号),不能有中文、空格和其它特殊字符存在
- 不能以数字、下划线开头,开头必须是英文字母或者点
- 可以以点号开头,但点号后面的符号不能是数字
在 R
语言中,如果非要搞一些骚操作,用一些奇怪的变量名,也不是不可以,需要用反引号来包裹。
> `* 90` <- 10
> `* 90`
[1] 10
> `变量` <- 20
> `变量`
[1] 20
当然,不建议这样做,变量取名最好简单且有意义,这样可以减少与其他人的沟通成本以及日后的理解成本。
R 语言中的基本数据类型
R
语言中主要数据类型有:向量、列表、矩阵、因子、数据框、数组。这些会在后面的文章中进行介绍,本篇只介绍基本的几种数据类型。
1. 逻辑型(logical)
逻辑型数据有两种可能的值,TRUE
或 FALSE
。
> v <- TRUE
> class(v)
[1] "logical"
> y <- FALSE
> class(v)
[1] "logical"
> y <- false
错误: 找不到对象'false'
class
函数可以获取变量的类型信息,可以看到,变量 v
和 y
都是 logical
类型。需要注意的是 TRUE
和 FALSE
必须全部大写,否则会出现上面的错误提示。
2. 数值型(numeric)
R
语言中数字的默认类型为数值型,在运算时需要注意其精度问题,当整数部分大于等于7位时,将舍弃小数部分,当整数部分小于7位时,与小数部分一起最多保留7位数字。
> i <- 10
> class(i)
[1] "numeric"
> j <- 11.1
> class(j)
[1] "numeric"
> k <- 1.1234567890
> class(k)
[1] "numeric"
> k
[1] 1.123457
> k <- 123456789.123456789
> k
[1] 123456789
> k <- 1234567.123456789
> k
[1] 1234567
> k <- 123456.123456789
> k
[1] 123456.1
3. 整数型(integer)
R
语言中,整数型需要使用数字+L来表示,如:2L
、11L
、-10L
。
> i <- 1L
> class(i)
[1] "integer"
> j <- 22L
> class(j)
[1] "integer"
> k <- -10L
> class(k)
[1] "integer"
4. 字符型(character)
R
语言中字符型即字符串类型,通常为用单引号或双引号包围的字符串。
> name <- "Frank"
> class(name)
[1] "character"
> doc_name <- "study.mp4"
> class(doc_name)
[1] "character"
5. 复数型(Complex)
R
语言是支持复数计算的,复数也是 R
语言的基本类型之一。
> c1 <- 3 + 2i
> class(c1)
[1] "complex"
> c2 <-6 - 3i
> class(c2)
[1] "complex"
6. 原型(Raw)
R
语言还有一种不太常见的基本数据类型,叫原型(raw
)。raw
类型是直接使用其二进制内容来进行保存和使用的类型。
> v <- charToRaw("Hello")
> class(v)
[1] "raw"
> v
[1] 48 65 6c 6c 6f
如何判断变量的类型
当我们拿到一个变量之后,如何判断它的数据类型呢?上面的例子中,其实已经有所提及,使用 class()
函数可以简单方便的查看变量的类型,但还有更简单的方式,为了判断某个变量x
保存的基本类型,可以用 is.xxx()
类函数,如is.integer(x)
, is.double(x)
, is.numeric(x)
, is.logical(x)
, is.character(x)
, is.complex(x)
, is.raw(x)
。 其中 is.numeric(x)
对 integer
和 double
内容都返回真值。
> is.character(s)
[1] TRUE
> is.character(v)
[1] FALSE
> is.raw(v)
[1] TRUE
> is.integer(i)
[1] TRUE
> is.numeric(i)
[1] TRUE
> is.complex(c1)
[1] TRUE
> is.integer(c1)
[1] FALSE
小结
至此,本篇就告一段落了,相信通过本篇的学习,对 R
语言的基本数据类型能有一个整体的掌握,别忘了回顾一下之前的问题,这些你都了解了吗:
R
语言有哪些基本操作- 什么是变量,以及如何给变量赋值
R
语言有哪些基本数据类型,如何确定变量的数据类型
之后的篇章中,将会继续介绍 R
语言的各方各面,让 R
语言能为我们的数据分析提供更强力的支持!
【R语言入门】R语言中的变量与基本数据类型的更多相关文章
- 转载~kxcfzyk:Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解
Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解 多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁 ...
- 《R语言入门》语言及环境简单介绍
简单介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...
- C语言入门教程-(4)常量和变量
1.常量和变量的概念 程序执行过程中其值不能发生改变的量叫做常量,其值能发生改变的量叫做变量.常量可以直接使用,而变量则必须先定义后才能使用,否则编译器会报错. 2.常量和变量的命名规范 在介绍常量和 ...
- C语言入门3-C语言概述及数据类型
一. 计算机程序设计语言 (计算机语言的发展历史) 1. 机器语言 机器语言 二进制代码语言,由 0和1组成的. 特点是:计算机可以直接识别,不需要进行任何的翻译. 2 ...
- 【Python编程:从入门到实践】chapter2 变量和简单数据类型
2.1 运行2.2 变量 message = "hello" print(message) 2.2.1 变量的命名和使用 2.2.2 使用变量是避免命名错误2.3 字符串 “Hel ...
- 读书笔记「Python编程:从入门到实践」_2.变量和简单数据类型
做了大半年RPA了,用的工具是Kapow. 工作没有那么忙,不想就这么荒废着,想学点什么.就Python吧. 为期三个月,希望能坚持下来. 2.1 变量的命名和使用 变量名只能包含字母.数字和下划线. ...
- R图表入门
R图表入门 R语言最强的功能就是统计和作图了,在学习了基本语法之后,博主马上体验了一下R的图表功能 条形图 例1 H = c(7,12,28,3,41) M = c("Mar",& ...
- c语言入门这一篇就够了-学习笔记(一万字)
内容来自慕课网,个人学习笔记.加上了mtianyan标签标记知识点. C语言入门 -> Linux C语言编程基本原理与实践 -> Linux C语言指针与内存 -> Linux C ...
- 【PHP】解析PHP中的变量
php是一门脚本语言,同时php中的变量类型也是弱语言类型,这和javascript非常相似.笔者在这里说一说PHP中的变量知识点. 1. 引用类型变量 看下面的案例: <?php class ...
随机推荐
- HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...
- 使用udev高效、动态的管理Linux设备文件
导读: 在Linux环境中,所有的设备都以文件的形式存在,在早期的Linux版本中,/dev目录包含了了所有可能出现的设备文件,很难想象Linux用户如何从大量的设备文件中找到想要的设备文件.举个例子 ...
- Java中的微信支付(2):API V3 微信平台证书的获取与刷新
1. 前言 在Java中的微信支付(1):API V3版本签名详解一文中胖哥讲解了微信支付V3版本API的签名,当我方(你自己的服务器)请求微信支付服务器时需要根据我方的API证书对参数进行加签,微信 ...
- 【总结】HTTP
一.HTTP 1.http HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机世界里专门在两点之间传输文字.图片.音频.视频等超文本数 ...
- Luogu P6830 [IOI2020]Connecting Supertrees
题意 好复杂,我就不写了. 题解 口胡了一下,发现我居然会 IOI 的题? 首先发现有 \(3\) 一定不合法,因为连通块里面有一个环的话 \(p_{i,j}\) 最多为 \(2\),有两个环的话就存 ...
- 【开源】使用.Net Core和GitHub Actions实现哔哩哔哩每日自动签到、投币、领取奖励
BiliBiliTool是一个B站自动执行任务的工具,使用.NET Core编写,通过它可以实现B站帐号的每日自动观看.分享.投币视频,获取经验,每月自动领取会员权益.自动为自己充电等功能,帮助我们轻 ...
- Flask 中的MTV架构之Views
Flask 中的MTV架构之Views 1.MVC与MTV 1.1 MVC M:model,模型,数据模型 V:view,视图,负责数据展示 C:controller,控制器,负责业务逻辑 ...
- [Luogu P2824] [HEOI2016/TJOI2016]排序 (线段树+二分答案)
题面 传送门:https://www.luogu.org/problemnew/show/P2824 Solution 这题极其巧妙. 首先,如果直接做m次排序,显然会T得起飞. 注意一点:我们只需要 ...
- 【Android Studio】安卓开发初体验3.1——UI设计之常用控件
常用控件 首先对xml文件的编辑有三种模式 Code为纯代码 Split是一边代码,一边预览效果图 Designer就是有UI设计界面 TextView 用于在界面上显示一段文本信息 所有控件都可以在 ...
- Unknown CMake command
Unknown CMake command "add_clang_library".等 在官网上照着打 发现上面错误 结果是版本问题 选好版本和选项catkin还是rosbuild