vlambda博客
学习文章列表

【R语言学习】002 科学计算器

一、目标

· 把R当成一个科学计算器来使用

· 给变量赋值

· 如何使用无限值与缺失值

·什么是逻辑向量



二、运算

1、c函数

我发现身边有同学上了R语言课以后居然不知道c函数是啥,只知道赋值向量的时候前面要加个c,然后照着老师的样子敲出x<-c(...)

c是concatenate的第一个字母,concatenate在拉丁语中的意思为“将所有东西拼接起来”

☆☆c和C的作用完全不同

在《Learning R》一书中,作者在介绍此处时并未标出具体区别,所以我使用  

?C  

向R语言求助,结果。。。

【R语言学习】002 科学计算器

【R语言学习】002 科学计算器

看到这里,唔,好像不太懂的样子,留个神,以后再看


2、向量

向量是数值的有序集

通常像我们搞统计的分析对象是整个数据集,而不仅仅是一条数据

这里介绍两个运算符

冒号运算符 :

eg:

【R语言学习】002 科学计算器

加号 +

加号不仅能加数字,还能加向量

eg:

【R语言学习】002 科学计算器

【R语言学习】002 科学计算器

这比C语言或者C++方便的多!在C或者C++中我们需要写循环语句来完成这样的操作

3、向量化

三层意思:

①运算符或者函数能作用于向量中的每个元素,而不需要写循环语句(这个上面已经介绍过了)

②当一个函数把一个向量作为输入时,可以进行计算汇总统计(看下面这个小例子)

【R语言学习】002 科学计算器

③(这个好像不常用)参数的向量化

eg:

【R语言学习】002 科学计算器

4、运算符和运算函数小汇总

☆不仅仅是+,其他所有算数运算符都是向量化的

【R语言学习】002 科学计算器

R里面还包含了各种其他数学函数,例如三角函数(tan、sin、cos等)、反三角函数(asin、acos等)、对数和指数(log、exp,还有其变种log1p,expm1,这俩用来算x很小很小时候的log(1+x)、exp(x-1) )、开根号(sqrt(...))、还有好多好多其他的三界之内五行之中的数学函数。

eg:

【R语言学习】002 科学计算器

这里第二行的+表示我上一行漏打了一个括号,+有着连接上下两行的作用;pi表示π,就是3.1415926那个

【R语言学习】002 科学计算器

看到欧拉公式忽然想起把棣莫弗念成逮莫弗的房老师hhh

==表示比较整数值是否相等,这个也是向量化的

!=用来检查不相等,大小比较<,<=,>,>=

eg:

【R语言学习】002 科学计算器

注:用==比较非整数型会存在有舍入误差的风险

all.equal函数用来检查数字是否相等时会存在一个容忍度,小于该容忍度的舍入误差会被忽略。要返回TURE或者FALSE,要把all.equal放在isTURE函数里面用

值得一提的是,字符串也是可以用来比较大小的。我们学C++的时候已经知道了每个字母都对应着一个数字(ASCII值),这是其原理。但是R语言似乎不是通过ASCII值来比较的(瞎猜的,书上没说,我试了几个,猜的应该是对的)

eg:

【R语言学习】002 科学计算器



三、赋值

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键才能看到赋值的效果

【R语言学习】002 科学计算器

想写到一行,加个分号即可,或者把赋值语句写在括号里面

【R语言学习】002 科学计算器

rlnorm函数生成对数正态分布的随机数

【R语言学习】002 科学计算器

四、特殊数字

Inf、-Inf、NaN、NA,前两个表示±∞,NaN表示“不是一个数”,意味着该变量计算没有数学意义或者无法执行。NA(Not Available)表示“缺失值”,NA加任何数都等于NA,Inf-Inf等于NaN,NaN+NA等于NA或者NaN。

五、逻辑向量

1.运算符

|或、!非、&与

逻辑值:TRUE、FALSE


【R语言学习】002 科学计算器


【R语言学习】002 科学计算器

这里我在Rstudio进行操作,R语言本身的编程环境让人觉得它实在“睿智”

《LearningR》的意思是让读者自行理解,,,

好的,,,大概意思如上图(我就是抽象带师【R语言学习】002 科学计算器

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

我码字到这里才知道用新媒体管家插件可以把代码弄进来,之前截图的部分没保存映像直接关了编辑器【R语言学习】002 科学计算器

这次知道了,下次把代码都弄进来

六、补充

?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

用谷歌浏览器打开,中文翻译还挺准的


我至今不知道是什么给了我勇气敢发学习类的内容

发完这个就是微经课(我们老师好像和隔壁班老师进度差了大半个单元)

高代作业已经和本班进度差了一整个单元,无所畏惧

欢迎关注淏泧三千

这是个学渣偶尔发发笔记,

卖弄卖弄文笔的地方