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

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中对应的元素分别相加!

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

把上面一排数字和下面一排数字各自看成一个向量,分别命名为“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章中,还会介绍该函数和其他一些函数的使用方法。

时间: 2024-08-10 18:56:59

《R语言初学指南》一1.2 向量的相关文章

《R语言初学指南》一第2章 R脚本

第2章 R脚本 R语言初学指南 如果只是进行一项小的计算任务,也必须在控制台窗口中输入许多行代码,则会令人感到心烦.一旦出现错误,就要将某行,甚至更多行全部重新输入.例如,在第1章曾使用三个R命令绘图: >moose.density=c(.17,.23,.23,.26,.37,.42,.66,.80,1.11,1.30,1.37, + 1.41,1.73,2.49) >kill.rate=c(.37,.47,1.90,2.04,1.12,1.74,2.78,1.85,1.88,1.96, +

《R语言初学指南》一1.4 实际案例

1.4 实际案例 R语言初学指南 前文中选取的例子仅仅是用来做简单说明,在实际生活中,对存单投资的重要性很难超越现金的重要性.在本书的一些章节中,会分析更加复杂的实际案例,这需要一步步地用R中的计算及绘图工具进行综合分析. 下面介绍生态学的数据绘图.这是一个科学上的实际案例,而不是演示案例,因此先介绍一些背景知识. 生态学是生物学的一个分支学科,是研究生物体与其周围环境相互关系的科学.几十年来,生态学家一直在关注捕食者与猎物的关系,这种关系是对社会有重要意义的问题.例如,在美国的部分地区,有关狼

《R语言初学指南》一导读

前 言 R语言初学指南 R是一个用于科学绘图和计算的计算机软件.它由统计学家和科学家编写并维护,以便科学家们在工作中使用.它易于使用,且有强大的功能.R正在科学和技术领域迅速传播,并为展示科学出版物中的图形数据建立标准. R是免费的开源软件,可在大多数计算机(俗称电脑)上安装.它支持Windows.Mac和Unix/Linux操作系统.人们可从R语言网站(http://www.r-project.org/)方便地下载并安装R软件. 本书是为高中生.大学生,以及其他想要学习怎样使用R的人编写的.借

《R语言初学指南》一2.6 本章小结

2.6 本章小结 R语言初学指南在上例中,由于向量t.principal.paid.month.t.interest.paid.month.t及principal.remaining都包含360(或m)个元素,它们在控制台显示时会出现大片的数字.若能将它们组织成某种表格,使之能更好地呈现出来就好了.同样,还需要几种能将大型数据表格输入到R中的方法.在第5章中将会讨论数据的输入及输出. 在之前给出的脚本中,函数sum()可能会令人好奇,它可对任一向量中的所有元素求和.R中有很多这样的函数,在第3章

《R语言初学指南》一2.7 计算任务

2.7 计算任务 R语言初学指南下面是第1章中的部分任务.这里的任务是:为下列R中的计算问题建立R脚本.希望你能同意将完成第1章中任务的R命令都用R脚本保存下来,以便日后使用.在完成第1章任务后将命令保存下来了吧?这对完成下面的任务很有帮助的! 2-1 计算下列各表达式: 2-2 在更长的时间跨度下,再画一遍投资方程图(计算存单中的金额).这次将时间延长到多年(50年?)后的将来,比如说一直到65岁退休那年.得到的图形是不是很令人惊讶?这确实让人很难抉择:要么现在去买一条设计新颖的牛仔裤,要么存

《R语言初学指南》一1.6 计算任务

1.6 计算任务 R语言初学指南可用已学到的R知识来完成下面的计算题.最初可能会遇到些小麻烦,但通过实践.试验.犯错并与同学讨论,就可掌握如何操作R.记住,如果输入了错误的命令,只要再输入一遍正确的即可,R会覆盖之前的值.在命令运行成功并得到结果后,将其复制并保存在一个文本文件中,以便日后调用. 1-1 计算下列各表达式: 1-2 在更长的时间跨度下,再画一遍投资方程图(计算存单中的金额).这次将时间延长到多年(50年?)后的将来,比如说一直到65岁退休那年.得到的图形是不是很令人惊讶?这确实让

《R语言初学指南》一1.3 图形

1.3 图形 R语言初学指南准备好用R进行绘图了吗?如果还没有感受到R的强大,就请做好准备吧.假设你有1000美元的积蓄,并希望存到将来使用,比如用来买房子.现在有银行提供一份年利率为5%的存单(certificate of deposit,CD),并且每年的利息会计入本金.通过用R绘图,可看到这样的结论:这份存单可让你有机会更好地利用原有的积蓄.图中会显示一年后.两年后,一直到十年后,存单中的实际金额. 由于每年5%的利息会计入本金,在计算下一年存单中的金额时,要用(1+0.05)乘以当年的金

《R语言初学指南》一1.5 本章小结

1.5 本章小结 R语言初学指南要想进行更长.更复杂的计算,或是绘制一幅复杂的图形,都需要在控制台中输入多行命令,看起来这并不易于操作.事实确实如此.本书第2章将会介绍如何输入.编辑并保存一串很长的命令列表到R的"脚本"文件中,并同时运行整个命令列表.同样,使用c()(合并)命令将一组很大的数据集输入到一个或几个向量中,看上去既笨拙又不方便.本书第5章将会介绍如何将数据输入并保存在一个独立的数据文件中,以及如何在R中调用该数据文件来绘图和分析.通常大多数人,特别是科学家们,讨厌不必要的

《R语言初学指南》一2.3 找到R脚本中的错误

2.3 找到R脚本中的错误 R语言初学指南复杂项目中的R脚本会非常长.即使是R专家,也很少能一次性将其编写正确.脚本中的所有错误都是通过调试来修改的. 在脚本中称追踪错误或"bug"为"调试".调试包括一些适用性检测工作. 下面在脚本中故意制造一个bug,由此来练习如何调试.首先来做一些清理工作.使控制台成为活动窗口,并输入下列命令: >objects() 按照惯例,这里在展示控制台中的命令时,依然在其前面显示R提示符(">"),但要