本文写给有编程基础和无编程基础的所有R语言小白!一个星期前,笔者也是一个R语言小白,所以自知所学甚浅,如同学们在阅读时发现本文的错误和不足,热热热烈欢迎大噶在评论区补充或直接私聊联系笔者!
笔者所用环境:
操作系统 Windows 10
软件 R-Studio https://www.r-project.org
C vs R
一般而言,C语言用于大型(复杂的)程序编写,C语言语句(或语句块)被编译成机器语言后,可被重复执行;R语言语句即时被翻译,写一句就能执行一句,更加灵活,但总体来看,解决问题的效率不如C。
R语言常见应用场景:统计计算和统计制图。
笔者推荐自学入门网站:菜鸟教程 https://www.runoob.com
熟悉环境
双击打开R-Studio,界面如下(笔者已更改过主题颜色,这个蓝色好好看呀呜呜呜)。
与在Visual Studio中的操作相似,我们需要新建一个R语言的文件。如图所示。
如此,我们就得到了一个新的文件。在这个文件中,我们就可以开始写R语句并运行这些语句了!(下文中,>开头的是写在R-script里的语句,[1]后表示"Console"中的返回值)
R 语言计算器
> 1 + 1 #在新文件中直接敲下这句话,然后鼠标光标点击这句话所在的行,点击“run”按钮,运行语句。
[1] 2 #在文件下的框框儿“Console”中,可以看到运行结果。
请注意,在Rscript文件中,一句语句可被重复运行多次。同学们也可以这样理解:R的记忆是短暂的,随时更新的。它最大的特点之一就是即时!
试试看,此时再次用鼠标点击“1 + 1”这句话所在的行,然后点击“run”按钮,运行语句,会在“Console”中看到什么结果?
在接下来的运算中,我们都可以遵守“写一句,run一句”原则。当然,也可以先写好再从头一句一句run过来。
下面继续介绍几种常见运算的语法规则。
> 2 + 3 * 4 #乘法运算
[1] 14 #运算符优先级规则可参考C语言
> 2 ^ 3 #指数运算
[1] 8
> exp(1) #自然指数运算。很多其他基本数学函数在R语言中也可调用
[1] 2.718282
> sqrt(9) #开平方
[1] 3
> pi #圆周率π在R语言中已被定义,可直接使用
[1] 3.141593
同学们,请想一下,考虑R语言即时性的特点,如果我们写错了语句,可以怎样解决呢?
方案一:删除整个原文件,重开一个新文件(大雾)。
方案二:重新写预期语句,写完后再run一下,R-script的“记忆”就被更新为正确的了。
方案三:直接在原语句上进行修改,写完后run,更新“记忆”。
笔者在实操过程中,后两种方法都用到过,私以为这取决于个人习惯。平常喜欢用中性笔写卷子,喜欢看到自己以前错在了哪里的同学,可以选择方案二;平常喜欢用铅笔写卷子,喜欢看到代码没有错误整整齐齐的同学,可以选择方案三。
好了,继续,下面介绍R语言中的一些常用变量类型。
R语言变量类型
Numeric 数值型。存储浮点型数据
Boolean (T or F) 布尔型。有两个值,True和False
Strings 字符串型
如何存储变量?借用“<-”进行赋值,请看!
> x <- 3 #这一个语句中,我们同时做了两件事。①将x定义为数值型变量;②将3赋值给x。继续赋值吧!
> y <- 2
> x * y #应用上文提到的计算符
[1] 6 #得到结果,结果是一个数值
请跟着笔者,一起输完下面的语句吧!
> X * y
Erorr: Object “X” is not found #在R语言中,变量名是区分大小写的,大写”X”未定义
> This.Year <- 2021 #变量名可以包含时间
> This.Year #单独输入变量名并运行,可以查看变量的值
[1] 2021
R语言中的数组
数组,顾名思义,就是一组数。下面介绍R语言常用数组:
c() #连结元素或子数组
rep() #repeat;对元素进行重复操作
seq() #sequence;创建一个序列
太抽象了吗?不要紧,实操看看!
> rep(1, 5) #将数字1重复5遍
[1] 1 1 1 1 1
> seq (2, 6) #2到6之间所有整数的数列
[1] 2 3 4 5 6
> seq (4,20,by=4) #在4到20中间的整数,每4个数输出1个数,即步长为4。也可看做首项是4,公差为4的一个等差数列,只不过这个数列是有限的。
[1] 4 8 12 16 20
> x <- c (2, 0, 2, 1) #创建数组c,其元素为2,0,2,1,并将其赋值给变量x
好啦,下面我们来看看,数组可以进行什么运算吧!
> y <- c (2, 0, 0, 1) #创建数组c,其元素为2,0,0,1,并将其赋值给变量y
> x + y
[1] 4 0 2 2 #数组相加;是不是很像矩阵的相加?
> x * 4 #数乘
[1] 8 0 8 4
> sqrt(x) #数组中的每个元素都做函数运算
[1] 1.41 0.00 1.41 1.00 #返回函数结果
好啦,到这里,是不是感觉对R语言更熟悉一些了呢?那么,我们继续吧!
R语言中的动态数组
在R语言中,我们用方括号“[]”表示动态数组。动态数组可以帮助我们选择特定的数组元素,除去特定的数组元素或者用布尔型对数组中的元素进行判断。请直接看例子:
> x <- c (2, 0, 2, 1)
> x [1] #选择数组中的第一个元素,与x [ c (1) ]等价。
[1] 2
> x [-1] #除去数组中的第一个元素
[1] 0 2 1
> x [1] <- 3 ; x #将数组中的第1个元素赋值为3
[1] 3 0 2 1
> x [-1] <- 6 ; x #将数组中的除了第1个元素的所有元素都赋值为6
[1] 3 6 6 6
> x < 9 #不是计算语句,而是判断语句。判断完每一个元素后,返回布尔型值
[1] TRUE TRUE TRUE TRUE
> x [ x< 9] = 7 #将数组中每一个判断为TRUE的元素赋值为7
> x
[1] 7 7 7 7
基础操作介绍先到这里,下一篇将介绍R-Studio中对表的操作。