R语言学习 第十篇:操作符
运算符是R语言中最基础的存在,熟悉运算符的使用,是熟练使用R处理数据的基础,操作符,顾名思义,是对数据进行运算的符号,R有自己的一套操作符,实现变量的赋值,引用,运算等功能。
一,赋值符号
为变量赋值,推荐使用 var <- expression, 把var设置为expression的值,该赋值符号有方向性。
为参数传值,使用 = ,R把等号右侧表达式的值计算出来,赋值给等号右侧的变量。
二,作用域引用符
作用域引用符:: 用于引用包中的对象。当载入多个包时,后载入的包,会把之前包中的同名函数覆盖。
dplyr::bind
通常情况下,引用包中的对象,都会省略package::,而不会产生问题。
三,运算符
R的运算符分为三类:算术运算符,逻辑运算符和位运算符。
1,算术运算符
基本算术运算符:加(+),减(-),乘(*),除(/),负数(-)
幂运算:^ 或 **
整除操作符%/%,该操作符的两侧是整数,返回的结果是整数,不足1的小数取整为0:
> 1%/%3
[1] 0
> 5%/%3
[1] 1
取模操作符 %%,该操作符的两次是整数,返回的结果是整数,求整除的余数:
> 5%%3
[1] 2
2,逻辑运算符
用于对表达式执行逻辑运算的运算符,返回的结果是布尔值:
- 大于:>
- 小于:<
- 大于或等于:>=
- 小于或等于:<=
- 等于:==
- 不等于:!=
用于对布尔值进行逻辑运算的运算符:
- 与:x & y
- 或:x | y
- 非:! x
- 判断是否为真:isTURE(x)
- 判断是否为假:isFALSE(x)
- 判断是否不等:xor(x,y), 两个操作数不等时返回TRUE,相等时返回FALSE。
- 长格式的逻辑运算符:&&, ||
“&”和“|”作用在对象中的每一个元素上并且返回和比较次数相等长度的逻辑值;“&&”和“||”只作用在对象的第一个元素上。
对于逻辑与的运算,&& 和 &的不等:
> x <- c(T,T,F)
> y <- c(F,T,F)
> x&&y
[] FALSE
> x&y
[] FALSE TRUE FALSE
对于逻辑或的运算:
> x <- c(T,T,F)
> y <- c(F,T,F)
> x|y
[] TRUE TRUE FALSE
> x||y
[] TRUE
3,all()和any()
判断数据中是否存在TRUE值,其中all()是在全部为TURE时返回T,any是在存在任何一个TRUE时返回TRUE。
参数na.rm:是布尔类型,用于指定是否删除NA值。
all(x, na.rm=T)
4:位运算符
按照数值的bit对操作数(整数类型)进行位运算,返回的结果是整数值:
- 按位与:bitwAnd(a, b)
- 按位或:bitwOr(a, b)
- 异或:bitwXor(a, b)
- 按位取反:bitwNot(a)
- 按位左移:bitwShiftL(a, n)
- 按位右移:bitwShiftR(a, n)
四,运算符的向量特性
不同于其他语言,R中的运算符具有向量特性,可以对向量的元素执行向量运算:
# An example
x <- c(1:10)
x[(x>8) | (x<5)]
# yields 1 2 3 4 9 10 # How it works
x <- c(1:10)
x
1 2 3 4 5 6 7 8 9 10
x > 8
F F F F F F F F T T
x < 5
T T T T F F F F F F
x > 8 | x < 5
T T T T F F F F T T
x[c(T,T,T,T,F,F,F,F,T,T)]
1 2 3 4 9 10
1、向量化(逐个元素循环操作)
例:y=1:10; y+1; sqrt(y);
2、两个不等长的向量,短向量循环填充到长向量中
例:x=1:3; y=1:10; z=x+y
注意:当两个变量长度不是整倍数的关系,会有警告信息。
五,formula 操作符
常用于ggplot2包中,是formula函数的等价方式:
a ~ b+c
六:匹配符
匹配符 % in % 是match()函数等价方式,返回一个布尔值的向量:
x %in% table
match(x, table, nomatch = NA_integer_, incomparables = NULL)
七,通道符
用于dplyr包中,把数据集传递给下一个函数使用:
df %>% mutate()
八,其他操作符
- $ 根据名字(name)获取字段值
- [], [[]] 索引
- : 序列
参考文档:
R语言学习 第十篇:操作符的更多相关文章
- R语言学习 第十篇:包
包(Package)是实现特定功能的.预先写好的代码库(library),通俗地说,包是含有函数.数据等的功能模块.R拥有大量的软件包,许多包都是由某一领域的专家编写的,但并不是所有的包都有很高的质量 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- R语言学习 第八篇:常用的数据处理函数
Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数,本文分享在数据处理时,经常使 ...
- R语言学习 第十一篇:日期和时间
R语言的基础包中提供了三种基本类型用于处理日期和时间,Date用于处理日期,它不包括时间和时区信息:POSIXct/POSIXlt用于处理日期和时间,其中包括了日期.时间和时区信息.R内部在存储日期和 ...
- R语言学习 第五篇:字符串操作
文本数据存储在字符向量中,字符向量的每个元素都是字符串,而非单独的字符.在R中,可以使用双引号,或单引号表示字符. 一,字符串中的字符数量 函数nchar()用于获得字符串中的字符数量: > s ...
- R语言学习 第三篇:数据框
数据框(data.frame)是最常用的数据结构,用于存储二维表(即关系表)的数据,每一列存储的数据类型必须相同,不同数据列的数据类型可以相同,也可以不同,但是每列的行数(长度)必须相同.数据框的每列 ...
- R语言学习 第七篇:列表
列表(List)是R中最复杂的数据类型,一般来说,列表是数据对象的有序集合,但是,列表的各个元素(item)的数据类型可以不同,每个元素的长度可以不同,是R中最灵活的数据类型.列表项可以是列表类型,因 ...
- Python 学习 第十篇 CMDB用户权限管理
Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...
- python3.4学习笔记(十) 常用操作符,条件分支和循环实例
python3.4学习笔记(十) 常用操作符,条件分支和循环实例 #Pyhon常用操作符 c = d = 10 d /= 8 #3.x真正的除法 print(d) #1.25 c //= 8 #用两个 ...
随机推荐
- Oracle EBS R12多组织(多OU)访问架构
Oracle EBS R12多组织访问架构 多组织架构实现了经营单位(OU)的数据安全性,在底层数据表中有一列ORG_ID来记录数据所属的经营单一,所有多OU的基表都是以"_ALL" ...
- 网站开发进阶(三十四)编码中的setCharacterEncoding 理解
编码中的setCharacterEncoding 理解 1.pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码. 2.contentType ...
- Eclipse插件 - FindBugs 检查代码隐藏的 Bug
简介 FindBugs 是一个在 Java 程序中查找 bug 的程序,它可以查找可能出错的代码,注意 FindBugs 是检查 Java 字节码,也就是*.class文件.其实准确的 ...
- 敏捷测试(1)--TDD概念
题记 本系列笔记将从测试人员的角度,总结在百度两年来的测试经验,记录一个完整的基于敏捷流程的验收测试全过程,分享在测试过程中的一些知识和经验,以及自己的一些理念.总结自己,也希望对大家有益. 概念 验 ...
- 9.1、Libgdx的输入处理的配置和查询
(官网:www.libgdx.cn) 有时判断是否支持输入设备是必要的.通常你的游戏不需要支持所有的输入设备.比如你可能不需要加速度计或者罗盘.这时我们需要禁用这些设备保持电量.接下来将教你怎样做. ...
- (六十一)Xcode的git版本控制
打开终端 1.为项目添加git: 首先到达项目的根目录内部,输入git init,初始化一个空的代码仓库(隐藏文件.get). 接下来使用git add . --all .表达把当前目录及子目录中的文 ...
- 数据结构基础(3) --Permutation & 插入排序
Permutation(排列组合) 排列问题: 设R = {r1, r2, ... , rn}是要进行排列的n个元素, Ri = R-{ri}; 集合X中元素的全排列记为Permutation(X), ...
- Android表格布局(Table Layout)
Android表格布局(Table Layout) 先来看布局管理器之间继承关系图: 图1 可知TableLayout继承了LinearLayout,所以表格布局本质上依然是线性管理器. 表格布局采用 ...
- Vim/Vi常用操作(第二版)
周围同事不是用vim就是Emacs,你要是用一ultraedit,你都不好意思跟人家打招呼;什么插件呀,语法高亮呀,拼写检查呀,能给它开的都给它开着,就是一个字儿:酷. 你说这么牛B一东西,怎么着学会 ...
- cocos2d-x 读写 xml 文件
cocos2d-x 读写 xml 文件 A product of cheungmine使用cocos2d-x开发2d游戏确实方便,但是对于一般的小游戏,经常需要的工作是UI布局设计和调整,代码改来改去 ...