1 min read

Steem 和 R 语言:跟大鹏学 R 语言(2)简单计算

原文链接: steemit, cnsteem, busy, chainbb, steemdb, steemd, busy, markdown

前情回顾: - 预告:“Steem 和 R 语言:跟大鹏学 R 语言”连载即将开始 - Steem 和 R 语言:跟大鹏学 R 语言(1)下载安装

本文选自《学 R:零基础学习 R 语言》(研究出版社,大鹏、李怡著,2018)第一章。

xuer-cover.jpg

1.2 第一次畅谈:计算

R最简单的功能,是用作计算器。先在左上面板窗口输入以下代码,然后按窗口上方的运行(Run)按钮,或按快捷键 ctrl+回车(这个快捷键会经常用),就会运行光标所在行的整行代码:

3 * (2 + 2)
## [1] 12

上面第一行是输入的代码示例。第二行用两个# 号开头,表示是运行结果,默认显示在RStudio的左下面板。如不另作说明,本书都用这种格式来区分代码和运行结果。我们暂时不管#号后面的[1] 是什么,先来试试R的数学基本运算符:加+, 减-,乘*,除/,乘方 ^,整除的商 %/%,整除的余数%%

练习 1.1 计算365除???7得到的整除商和余数。

下面,我们开个平方。输入并运行

9 ^ 0.5 # 开平方
## [1] 3

或者

sqrt(9)  # 也是开平方
## [1] 3

上面两条语句的作用等同,只是形式不同。这里,sqrt()是开平方的函数,被开方的数必须放在圆括号里,这是 R 语法的基本规则之一。# 号后面一直到这一行的末尾是注释,注释部分不会被运行,这样是为了方便将来理解这句代码的用途。当然,我们可以用注释随便写点什么,比如说 “# 哇塞我的第1行代码太帅了”或者“# 今天心情不大好就写到这儿吧”等等。如果你乐意,那么完全可以在注释里偷偷写一部小说,就像《倚天屠龙记》里有人在《楞伽经》夹缝处写下《九阳真经》一样。

有人读到这里,可能会退缩了:sqrt,开玩笑,我怎么记得住啊!注意 R 入门第一秘诀: 不要被 R 吓住!现在,我们请出我们的第一位人气小助理:tab键。试试只输入 s,然后按 tab 键,就会看到RStudio给出的贴心提示,所有以 s 打头的函数和变量都列在里边了,用鼠标或箭头键选取就行了。在 s 后面接着输入q之后再按tab键试试。这个“tab小助理”我们以后天天时时分分秒秒都会用。

其实,常用的函数就那么几个,用几次就不需要贴心提示了。而且函数名称都很好记,sqrt 就是 square root 的缩写,顺便练了英文。实在记不住,那就用基本运算符来求乘方好了, 9 ^ 0.5 即可。将来学了自定义函数之后,你甚至可以把sqrt改名叫做kaipingfang。我们在后面的学习中,会经常针对同一个问题给出多个解决方案,条条道路通罗马,R很灵活的,随便挑一个你喜欢的方案拿去用就行了。

小贴士 1.1 R 菜鸟入门三大秘诀

第一秘诀:不要害怕!学R非难事,谁都可以R(Anyone can R)。

第二秘诀:能用就行!只要能完成工作,R代码写得漂亮与否并不重要。如果你有两个解决办法,那就选用你熟悉的那个。将来时间有富余的话再试另一个。

第三秘诀:与人分享!如果你的R 代码是一把刀,那么分享就是磨刀,越磨越快。

常用函数都可以顾名思义:四舍五入round(), 截取整数trunc(), 开平方sqrt(),求绝对值abs(),指数函数exp(),自然对数函数 log(),以10为底的对数函数log10(),三角函数 sin()cos()tan()asin()acos()atan()等等。

有些常数在R中已经定义好了,例如圆周率ππ,只要输入pi并运行

pi
## [1] 3.141593

怎么只有这几位有效数字?我上幼儿园时就背下来了,精确度不够高啊。要提高精确度,需要用选项函数option()

options(digits = 22)  # 最大支持 22 位
pi
## [1] 3.1415926535897931

option()函数运行一次后,以后的数字都会是指定的位数,直到重新运行一次,或者退出R。下面我们把位数改为默认值,7位:

options(digits = 7) 
pi
## [1] 3.141593

位数就变回来了。