R语言学习-1-Basic Building Blocks
主要依赖于swirl包来学习R语言的基础知识。具体说明如何操作可以参考Y叔的这篇公众号文章。
Basic Building Blocks
讲解R中的基础模块。任何指令都可以在R的交互界面中执行。建议采用RStudio作为学习平台
变量
R最简单的应用,是可以作为交互式的计算器,在console里输入5 + 7然后回车:
> 5 + 7 #输入,R的控制台里输入的前方会有>标志
[1] 12 #输出结果
在默认设置下,在默认状态下,在默认条件下,在默认情况下,在默认状态下的情况下
在这种情况下,在上述情境下可能会有需求去第二个计算中使用之前的结果。无需每次都手动输入5加7的值可以直接创建并存储这个运算结果到一个新的变量中。
在R语言中为变量分配值的方式是通过使用赋值操作符来实现的。该操作符由一个小于号字符 "<" 后面紧跟一个减号 "-" 组成。其形状类似于小于号后面跟上减号的形式。例如,在代码中可以表示为 <- 。这种表示方式类似于箭头指示的方向性变化,将右边的数值或表达式结果指向左边指定的变量存储位置。
我们把上面 5 + 7的结果赋值给名称为x的新变量,我们只需要输入:
> x <- 5 + 7
可以看到本次不会立即输出12。
可以观察到本次不会直接显示12。
由于在运用赋值运算符时,R默认情况下我们不希望立刻查看结果,而是打算将其用于后续的用途。
要查看变量x的内容,只需键入x并按下回车:
> x
[1] 12
现在我们再把 x-3赋值给变量y:
> y <- x - 3
看看y的值是多少?
> y
[1] 9
向量
现在让我们构造一个简单的数据对象称作向量(vector)。任何包含数据的对象都被视为一种数据结构而在R语言中数值向量是最基本的数据类型之一。值得注意的是即使单个数字也被视为长度为1的向量。
基于上述描述,在R语言中创建一个包含多个元素的向量是最基本的操作之一。具体而言,在R语言中构建一个包含数字1.1、9以及3.14的向量的基本途径是通过调用内置函数c()来实现这一目标。
> z <- c(1.1, 9, 3.14)
[1] 1.10 9.00 3.14
当我们遇到针对某个函数的疑问时,在线帮助系统能够提供详尽的信息支持。比如我们要深入了解c()函数的功能,在控制台运行命令\texttt{?c}即可查看相关信息,请注意这时无需附加参数。
> ?c
当下运行到该操作时,R会打开c()函数的帮助文档;若您正在使用RStudio,则此帮助文档位于右下方的窗口中。
现在回到我们上面的z变量,我们在控制台输入z,会输出什么?
> z
[1] 1.10 9.00 3.14 #没有输入时的逗号了
除了通过将现有向量进行组合外,在这种情况下我们还能够生成一个新的由z, 555, z组成的向量外加其他元素以满足特定需求之外还能够立即观察到结果的变化情况
> c(z, 555, z)
[1] 1.10 9.00 3.14 555.00 1.10 9.00 3.14
算数表达式
数值向量还可以直接用于算术表达式:
> z * 2 + 100
[1] 102.20 118.00 106.28
通过计算可以看出,在R语言中可以通过以下步骤对向量z进行操作:首先将向量z中的每一个元素分别乘以数值2;接着再对每个元素执行加法操作(即加上100)。具体来说,在R语言中可以使用以下算数运算符来进行这些基本操作:+、-、*、/等常用算术运算符以及^表示幂运算等
'-'
'/'
'^' #平方
sqrt() #平方根
abs() #绝对值
我们来对z - 1的向量进行取平方根,并赋值给my_sqrt:
> my_sqrt <- sqrt(z - 1)
那么my_sqrt的值是什么呢?
> my_sqrt
[1] 0.3162278 2.8284271 1.4628739
类似于之前的计算流程,在处理向量数据时
我们再创建一个新变量my_div,代表z除以my_sqrt的结果。
> my_div <- z / my_sqrt
> my_div
[1] 3.478505 3.181981 2.146460
当处理两个具有相同长度的向量时,在R中会对每个元素简单地应用指定的算术运算。 如果这些向量的长度不一致,则在R中会重复较短的那个向量直至两者达到相同的长度。
举个例子来说,在讨论线性代数的时候
再看一个关于向量循环 的例子:
> c(1, 2, 3, 4) + c(0, 10)
[1] 1 12 3 14
第二个向量被R自动循环了。
如果较短的向量无法均等地划分较长向量的长度,则R会在结果中产生警示信息:
> c(1, 2, 3, 4) + c(0, 10, 100)
[1] 1 12 103 4
Warning message:
In c(1, 2, 3, 4) + c(0, 10, 100) :
longer object length is not a multiple of shorter object length
省时小技巧
- 当按下控制台的方向键向上移动时会显示历史的输入记录。
- 如果遗忘变量或函数名称则可调用Tab键自动补全功能以快速访问常用变量或函数名称。
本文首发于公众号:柠檬培养师(ID: yantinger90),欢迎关注!
