1.1 怎样运行R
R可以在两种模式下运行:交互模式和批处理模式。常用的是交互模式。在这种模式下,你键入命令,R将显示结果,然后你再键入新的命令,如此反复进行操作。而批处理模式不需要与用户进行互动。这对于生产工作是非常有帮助的,比如一个程序必须定期重复运行,如每天运行一次,用批处理模式则可以让处理过程自动运行。
1.1.1 交互模式
在Linux或Mac的系统中,只需在终端窗口的命令行中键入R,就可以开始一个R会话。在Windows系统下,点击R图标来启动R。
启动后显示的是欢迎语,以及R提示符,也就是>符号。屏幕的显示内容如下:
现在就可以开始执行R命令了。这时候显示的窗口叫做R控制台。
举个简单例子,考虑一个标准正态分布,其均值为0且方差为1。如果随机变量X服从这个标准正态分布,那么它的取值将以0为中心,或正或负,平均值为0。现在要生成一个新的随机变量Y=|X|。因为我们已经取了绝对值,Y的值将不会以0为中心,并且Y的均值也将是正值。
下面来计算Y的均值。我们的方法基于模拟N(0,1)分布随机变量的取值:
这行代码将会生成100个随机变量,计算它们的绝对值,然后计算它们绝对值的均值。
标签[1]表示这行的第一项是输出结果的第一项。在这个例子中,输出结果只有一行(且只有一项),所以标签[1]显得有点多余。但是当输出结果有很多项会占据很多行时,这种标签会很有帮助。例如,输出结果有两行,且每行最多有6项,则第二行将会以标签[7]开头。
在这里,输出结果有10个数值,举例来说,第二行的标签[7]可以让你快速判断出0.687701是输出结果的第8项。
也可以把R的命令保存在文件里。通常,R代码文件都会有后缀.R或者.r。如果你创建一个名为z.R的文档,可以键入下面的命令来执行该文件中的代码:
1.1.2 批处理模式
有时候自动处理R会话能带来便利。例如,你可能希望运行一个用来绘图的R脚本,而不需要你亲自启动R来执行脚本,这时就要用批处理模式运行R。
举个例子,文件z.R中是绘图的代码,内容如下:
以#标记的部分是注释,它们会被R解释器忽略掉。注释的作用是以更易读的形式来提示代码的用途。
下面一步步讲解前面代码的作用:
调用pdf()函数告诉R我们想把创建的图形保存在PDF文件xh.pdf中。
调用rnorm()函数(rnorm代表random normal)生成100个服从N(0,1)分布的随机变量。
对这些随机变量调用hist()函数生成直方图。
调用dev.off()函数关闭正在使用的图形“设备”,也就是本例中的xh.pdf文件。这就是实际上把文件写入磁盘的机制。
我们可以自动运行上面的代码,而不用进入R的交互模式,只需要调用一条操作系统shell命令(例如通常在Linux系统中使用的$命令提示符)来调用R:
用PDF阅读器打开保存的文件,可看到直方图(这里展示的只是简单的不加修饰的直方图,R可以生成更加复杂的图形),这表明上面的代码已执行。