【R语言学习】002 科学计算器
一、目标
· 把R当成一个科学计算器来使用
· 给变量赋值
· 如何使用无限值与缺失值
·什么是逻辑向量
二、运算
1、c函数
我发现身边有同学上了R语言课以后居然不知道c函数是啥,只知道赋值向量的时候前面要加个c,然后照着老师的样子敲出x<-c(...)
c是concatenate的第一个字母,concatenate在拉丁语中的意思为“将所有东西拼接起来”
☆☆c和C的作用完全不同
在《Learning R》一书中,作者在介绍此处时并未标出具体区别,所以我使用
?C
向R语言求助,结果。。。
看到这里,唔,好像不太懂的样子,留个神,以后再看
2、向量
向量是数值的有序集
通常像我们搞统计的分析对象是整个数据集,而不仅仅是一条数据
这里介绍两个运算符
冒号运算符 :
eg:
加号 +
加号不仅能加数字,还能加向量
eg:
这比C语言或者C++方便的多!在C或者C++中我们需要写循环语句来完成这样的操作
3、向量化
三层意思:
①运算符或者函数能作用于向量中的每个元素,而不需要写循环语句(这个上面已经介绍过了)
②当一个函数把一个向量作为输入时,可以进行计算汇总统计(看下面这个小例子)
③(这个好像不常用)参数的向量化
eg:
4、运算符和运算函数小汇总
☆不仅仅是+,其他所有算数运算符都是向量化的
R里面还包含了各种其他数学函数,例如三角函数(tan、sin、cos等)、反三角函数(asin、acos等)、对数和指数(log、exp,还有其变种log1p,expm1,这俩用来算x很小很小时候的log(1+x)、exp(x-1) )、开根号(sqrt(...))、还有好多好多其他的三界之内五行之中的数学函数。
eg:
这里第二行的+表示我上一行漏打了一个括号,+有着连接上下两行的作用;pi表示π,就是3.1415926那个
看到欧拉公式忽然想起把棣莫弗念成逮莫弗的房老师hhh
==表示比较整数值是否相等,这个也是向量化的
!=用来检查不相等,大小比较<,<=,>,>=
eg:
注:用==比较非整数型会存在有舍入误差的风险
all.equal函数用来检查数字是否相等时会存在一个容忍度,小于该容忍度的舍入误差会被忽略。要返回TURE或者FALSE,要把all.equal放在isTURE函数里面用
值得一提的是,字符串也是可以用来比较大小的。我们学C++的时候已经知道了每个字母都对应着一个数字(ASCII值),这是其原理。但是R语言似乎不是通过ASCII值来比较的(瞎猜的,书上没说,我试了几个,猜的应该是对的)
eg:
三、赋值
1.赋值符号与规则
(1)赋值前不用声明变量,在R里面也不能声明
(2)赋值符号别说什么 = 也可以,就用<-,杠精给爷爬
(3)变量名可以有数字、字母、". " 、"_"。系统的保留字不可用,如if,for等。这里附上R Document所给的命名规则链接
http://127.0.0.1:13675/library/base/html/make.names.html
(4)<<- 可以对全局变量进行赋值,这个之后再谈
(5)assign函数赋值(罕见)
(6)给变量赋完值以后,得再输一遍变量名,按enter键才能看到赋值的效果
想写到一行,加个分号即可,或者把赋值语句写在括号里面
rlnorm函数生成对数正态分布的随机数
四、特殊数字
Inf、-Inf、NaN、NA,前两个表示±∞,NaN表示“不是一个数”,意味着该变量计算没有数学意义或者无法执行。NA(Not Available)表示“缺失值”,NA加任何数都等于NA,Inf-Inf等于NaN,NaN+NA等于NA或者NaN。
五、逻辑向量
1.运算符
|或、!非、&与
逻辑值:TRUE、FALSE
这里我在Rstudio进行操作,R语言本身的编程环境让人觉得它实在“睿智”
《LearningR》的意思是让读者自行理解,,,
好的,,,大概意思如上图(我就是抽象带师)
2.any和all函数
输入向量至少或者只包含TRUE值,它们就返回TRUE
eg:
> no_true <- c(FALSE,FALSE,FALSE)
> some_true <-c(TRUE,TRUE,FALSE)
> ALL_true<-c(TRUE,TRUE,TRUE)
> any(some_true)
[1] TRUE
> any(no_true)
[1] FALSE
> any(ALL_true)
[1] TRUE
> all(no_true)
[1] FALSE
> all(some_true)
[1] FALSE
> all(ALL_true)
[1] TRUE
我码字到这里才知道用新媒体管家插件可以把代码弄进来,之前截图的部分没保存映像直接关了编辑器
这次知道了,下次把代码都弄进来
六、补充
?Arithmetic(中文:算数运算符)
http://127.0.0.1:15865/library/base/html/Arithmetic.html
?Trig(三角函数)
http://127.0.0.1:15865/library/base/html/Trig.html
?Special(与beta和γ函数有关的特殊数学函数。)
http://127.0.0.1:15865/library/base/html/Special.html
?Comparison(关系运算符)
http://127.0.0.1:15865/library/base/html/Comparison.html
用谷歌浏览器打开,中文翻译还挺准的
我至今不知道是什么给了我勇气敢发学习类的内容
发完这个就是微经课(我们老师好像和隔壁班老师进度差了大半个单元)
高代作业已经和本班进度差了一整个单元,无所畏惧
欢迎关注淏泧三千
这是个学渣偶尔发发笔记,
卖弄卖弄文笔的地方