《R语言初学指南》一1.2 向量

简介:

本节书摘来自异步社区《R语言初学指南》一书中的第1章,第1.2节,作者【美】Brian Dennis(布莱恩·丹尼斯),更多章节内容可以访问云栖社区“异步社区”公众号查看

1.2 向量

R语言初学指南
R可以处理“一整串”的数字。例如:

> x=c(3,−2,4,7,5,−1,0)
> y=4
> x+y
[1] 7 2 8 11 9 3 4

上面第一行中的命令c()用来将3,−2,4,7,5,−1和0“合并”成一个列表,将该列表命名为x。在R中,由数字组成的列表有一个专门术语:向量。在这里,x是一个由7个元素组成的向量,y的值是4。表达式x+y的意思是把x中的每一个元素都加4。不过,如果y和x一样,都是向量,那么会出现什么情况呢?

> y=c(1,2,3,4,5,6,7)
> z=x+y
> z
[1] 4 0 7 11 10 5 7

这里x+y代表,x的元素与y中对应的元素分别相加!

回忆一下四年级时,老师曾给出一些大数字相乘的题目作为家庭作业:


74e832677eee2758aa2fd7475a1b49884feedf52

把上面一排数字和下面一排数字各自看成一个向量,分别命名为“top”和“bot”。然后,把两个向量相乘:

> top=c(75634,2339,103458,48761,628003)
> bot=c(567,138,974,856,402)
> top*bot
[1] 42884478  322782  100768092  41739416  252457206

这里有几个地方需要注意:(1)在写R语句时,不要用逗号把比较大的数按照三位一组的方式隔开。逗号在R中有其他的用处,比如,在命令c()中,需用逗号把不同的数分开;(2)要按照同样的顺序,把两组数分别输入到两个向量中;(3)数之间可有空格,但必须要用逗号把数隔开;(4)不要把这个告诉四年级的小朋友。

在R中,所有的算术运算都可以用在向量上,比如,加减运算、乘除运算,甚至包括乘方运算。像刚才看到的那样,如果对一个数和一个向量进行运算,那么这个数会作用在向量的每个元素上;如果对两个长度相同的向量进行运算,则两个向量中对应的元素会分别进行运算。

向量运算的优先级与算术运算一样,并且也可用括号来确定哪些运算需要优先进行:

> ted=c(1,2,3)
> kat=c(−1,1,.5)
> 2*(ted+kat)
[1] 0 6 7
> 2*ted+kat
[1] 1 5 6.5

如果在输入指令时出现错误,只要再重新输入一遍正确的指令即可。R会计算并保存最终输入的版本。同时,如果一行指令太长,可在任意一个明显不完整的R命令(R是很智能的!)处敲击回车键,这时,R会出现一个像加号一样的提示符,在这个提示符处继续输入命令,输入完后敲击回车键就可以了:

> kat=c(−1,1,
+ .5)
> kat
[1] −1.0 1.0 0.5

可用下面的冒号“:”来建立一个特殊的向量:

> j=0:10 
> j
 [1] 0 1 2 3 4 5 6 7 8 9 10

这里的j是向量,其元素是0~10的整数。也可用同样的方式来定义包含负数的向量:

> k=5:−5 
> k
 [1] 5 4 3 2 1 0 −1 −2 −3 −4 −5

想知道2的0次方到20次方分别是多少吗?这样做:

> j=0:20
> 2^j
[1]  1    2    4     8    16    32   64    128 
[9]  256   512   1024   2048   4096  8192  16384  32768 
[17] 65536  131072 262144  524288  1048576

此时读者可能已经注意到:用R的语法可以非常清晰地描述数学问题,这样就可毫无障碍地用即时消息或是短信来跟其他人讨论数学问题。

R:嗨,忙什么呢?

S:做数学作业呢,唉。

R:是啊,好愁人啊,我忘了求二次方程的方法了。

S:是这样的。

S:ax^2+bx+c=0。

S:当 b^2-4ac>0 时,存在两个解。

S:(-b+sqrt(b^2-4ac))/(2*a);

S:(-b-sqrt(b^2-4ac))/(2*a)。

R:谢谢啦!你在用R做作业吗?

S:当然啦!若用计算器需多花一倍的时间啊。

R:那等你做完了,一起去咖啡店吧。

S:好的!马上就做完了,用R就是方便。

S和R这两个人都是有经验的R使用者,他们知道sqrt()是用来求解括号中的平方根。在第3章中,还会介绍该函数和其他一些函数的使用方法。

相关文章
|
10月前
|
BI 索引
R语言数据结构-----向量
R语言数据结构-----向量
52 4
|
10月前
|
机器学习/深度学习 数据可视化 算法
R语言独立成分分析fastICA、谱聚类、支持向量回归SVR模型预测商店销量时间序列可视化
R语言独立成分分析fastICA、谱聚类、支持向量回归SVR模型预测商店销量时间序列可视化
|
10月前
|
机器学习/深度学习 搜索推荐 数据挖掘
R语言矩阵特征值分解(谱分解)和奇异值分解(SVD)特征向量分析有价证券数据
R语言矩阵特征值分解(谱分解)和奇异值分解(SVD)特征向量分析有价证券数据
|
10月前
|
算法
R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
|
10月前
|
机器学习/深度学习 人工智能 数据可视化
【视频】R语言支持向量回归SVR预测水位实例讲解|附代码数据
【视频】R语言支持向量回归SVR预测水位实例讲解|附代码数据
|
10月前
|
数据可视化 前端开发 计算机视觉
R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化
R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化
|
10月前
R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
|
10月前
|
数据可视化
R语言arima,向量自回归(VAR),周期自回归(PAR)模型分析温度时间序列
R语言arima,向量自回归(VAR),周期自回归(PAR)模型分析温度时间序列
|
10月前
|
vr&ar
R语言用向量自回归(VAR)进行经济数据脉冲响应研究分析
R语言用向量自回归(VAR)进行经济数据脉冲响应研究分析
|
10月前
R语言实现向量自回归VAR模型
R语言实现向量自回归VAR模型

热门文章

最新文章