博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二章 科学计算器:数学运算符和向量 变量赋值 特殊字符 逻辑向量
阅读量:38362 次
发布时间:2022-02-14

本文共 3759 字,大约阅读时间需要 12 分钟。

学习R语言是给数学家用的,大多符合人的逻辑而不是计算机的逻辑

分析对象一般是整个数据集而不是一个数据

第二章 科学计算器

**2.1数学运算符和向量

2.2变量赋值
2.3特殊字符
2.4逻辑向量

#2.1数学运算符与向量#数学运算符两端空不空格都可以,空了提高可读性#数学运算符和加法 可以加两个数和两个向量#冒号运算符:创建一个数的开始到另一个数的结束 不像python一样不包括最后一个#c函数会把一系列链接到一起1:5+2:6c(1,3,5,7)+c(0,1,3,6)#在python中可能要用到循环
35791114813

R的向量化的操作三重含义:

1.函数或运算符作用于向量中的每个元素,无需循环
2.函数把一个向量作为输入时,能汇总计算
3.参数向量化,特殊的是median()不是这样

add Codeadd Markdown#1c(1,3,5,7)+c(0,1,3,6)#2sum(1:5)median(1:5)#3sum(1,2,3,4,5)median(1,2,3,4,5) #因为不能计算,只把1输进去了
14813153151

除了加法有向量化还有减乘幂运算,两种除法,和余数

#减法c(2,3,4,5,6)-2-2:2*-2:2 #运算顺序先冒号 后乘号identical(2^3,2**3) #^ **都可以表示求幂1:10/3#浮点数除法1:10%/%3#整数除法1:10%%3#余数

0123441014TRUE0.3333333333333330.66666666666666711.333333333333331.6666666666666722.333333333333332.6666666666666733.3333333333333300111222331201201201

R包含了三角函数(sin,cos,tan,以及反三角函数asin,acos,atan),

对数和指数log和exp以及他们的变种log1p和expm1(log(1+x)和exp(1-x))
以及你能想到所有函数

cos(c(0,pi/4,pi))#pi为3.14……那个exp(pi*1i)+1#欧拉公式 对于一个正整数n,小于或等于n的正整数中与n互质的正整数个数(包括1)的个数,记作 φ ( n )factorial(7)+factorial(1)-71^2choose(5,0:5)
10.707106781186548-10+1.22464679914735e-16i015101051
#《《《《《《小补充 可以不看 》》》》》》》# 计算组合数/排列数print(choose(5,2))print(factorial(3))# 在向量中查找指定数据(数据可用向量形式给出),此函数返回一个和原向量等长的向量# 存在待匹配数据的位置上标记为N(第N个待匹配数据就标记N)x <- c(2,5,1,4,6,4,3)print(match(x,4))print(match(x,c(4,5)))####组合数:choose(n,k) —— 从n个中选出k个​##阶乘:factorial(k) —— k!​##排列数:choose(n,k) * factorial(k)​##列出所有组合数矩阵:combn(x,n)​#转置:t(combn(x,n))
[1] 10[1] 6[1] NA NA NA  1 NA  1 NA[1] NA  2 NA  1 NA  1 NA

关系运算符:

== != > < >= <=

(sqrt(2))^2-2#操作符也是向量化c(3,4-1,1+1+1)==31:3!=3:1exp(1:5)<=100(1:5)^2>=16#非整型变量,由于以32位存储,所以只能取近似值,存在舍入误差(sqrt(2))^2-2
TRUETRUETRUETRUEFALSETRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSETRUETRUE4.44089209850063e-16
#R的all.equal()函数检查数字是否相等   就不会存在存储时的误差#提供容忍度为1.5e-16,只要小于他的就可以忽略all.equal(sqrt(2)^2,2)#如果比较的值不一样,就返回差值#如果要返回布尔值,就将isTrue()加入all.equal(sqrt(2)^2,3)isTRUE(all.equal(sqrt(2)^2,3))
TRUE'Mean relative difference: 0.5'FALSEn

#==可以比较字符串 区分大小

#也可以用> <比较字符串(此问题待后续学习,用此方法 面对大小写的时候,语言环境结果会有所不同)

c("can","you","a","as","can!")=="can"c("A","B","C","D")<"C"
TRUEFALSEFALSEFALSEFALSETRUETRUEFALSEFALSE
#2.2变量赋值#给变量赋值时不需要申明#<-(首选),=都可以给变量赋值  x<- 1:5y=6:10x+2*y-3#注意运算顺序
1013161922
#变量名可以是字母 数字 点 下划线 (不能是数字或点后面跟数字,保留字 if for等 最好用大小写字母)#<<-对全局变量赋值(任意地方使用的变量)后续还会学#assign()函数可以赋值,加上参数globalenv()将和<<-一样assign("x",9^2);xassign("x",9^2,globalenv());x
8181
#想将复制打印出来,可以自己写变量x 或者在某些系统中直接print() #还可以在一行中写入两个语句 或者将赋值语句写在括号里#rnom rlnorm 函数分别生成正态分布随机数和对数正态分布随机数z<-rnorm(5);z(z<-rlnorm(5))
-1.24084961240796-0.5322325177741170.486914146600458-0.3194133248005720.08539273573376790.6700786868202170.6693973560729010.3617851840487691.02776414241880.204117580408696
#2.3特殊数字#为了帮助运算,R支持四种特殊值:Inf -Inf NaN NA#lnf 表示无穷大  #-lnf 表示无穷小#Nan 没有确定数 就是不知无穷大还是无穷小#NA缺失值add Codeadd Markdownc(Inf+1,Inf-1,Inf-Inf )c(1/Inf,Inf/1,Inf/Inf )c(sqrt(Inf),sin(Inf))c(log(Inf),log(Inf,base=Inf))c(NA +1,NA*5,NA+Inf)c(NA+NA,NaN+NaN,NaN+NA,NA+NaN)​
InfInfNaN0InfNaNWarning message in sin(Inf):“NaNs produced”InfNaNWarning message in eval(expr, envir, enclos):“NaNs produced”InfNaN
NaNNaN
x<-c(0,Inf,-Inf,NaN,NA)is.finite(x)is.infinite(x)is.nan(x)is.na(x)
TRUEFALSEFALSEFALSEFALSEFALSETRUETRUEFALSEFALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSETRUETRUE

#2.4逻辑回归

#TRUE FALSE是系统的保留字 但是True这种不是 可以缩写成T和F,T和F不是保留字但是最好避免使用
#逻辑向量与运算
#非 &与 |或

add Codeadd Markdown(x <- 1:10>=5)!x(y <- 1:10%%2>=5)x&yx|y
FALSEFALSEFALSEFALSETRUETRUETRUETRUETRUETRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUETRUETRUETRUETRUETRUE
nt<-c(F,F,F) #not true不对   some true有些对    all true全对st<-c(F,F,F)at<-c(F,F,F)any(nt)any(st)any(at)all(nt)all(st)all(at)
FALSEFALSEFALSEFALSEFALSEFALSE

转载地址:http://tbsduy.baihongyu.com/

你可能感兴趣的文章
Django实战---商城购物车的增删改、显示和合并购物车
查看>>
Django项目实战----添加支付宝支付
查看>>
DRF框架---前言(简单使用)
查看>>
字符串外面是b“ “的转换 -亲测有效
查看>>
单通道和多通道卷积
查看>>
npy文件和pkl文件的保存和读取
查看>>
买卖股票的最佳时机
查看>>
AUC粗浅理解笔记记录
查看>>
torch 模型运行时间与forward没对应的可能原因
查看>>
JavaScript 的addEventListener() 事件监听详解!
查看>>
上传图片到阿里云OSS和获取上传图片的url的详解 !
查看>>
Kafka为什么这么快?
查看>>
Java 生产者和消费者面试题
查看>>
生产者消费者问题
查看>>
本机电脑连接虚拟机redis失败解决方法
查看>>
DM365 应用层gpio控制
查看>>
linux i2c子系统abc
查看>>
CSS3 帧动画(Sprite,直译叫雪碧图)
查看>>
Java 父线程与子线程相互通信的方法
查看>>
Redis 六种淘汰策略和三种删除策略
查看>>