跳转到内容

统计分析:R入门与R基础

来自Wikibooks,开放世界中的开放书籍

为什么选择R?

[编辑 | 编辑源代码]

R是一个命令驱动的统计软件包。乍一看,这可能让人感觉难以使用。但是,有很多理由让我们学习使用这个程序进行统计分析。其中最重要的两个原因是

  • R是免费的;您可以从 https://r-project.org.cn 下载并安装到几乎任何类型的计算机上。
  • R允许您进行所有可能需要的统计检验,从简单的到高级的都有。这意味着您始终能够对您的数据进行正确的分析。

R还拥有出色的图形和编程能力,使其成为教学和学习的辅助工具。例如,本书中的所有插图都是使用R绘制的;通过点击任何插图,您都可以获取用于生成它的R命令。

最后一个好处是在您对统计或R有一定的了解后,您可以利用R的许多在线资源来帮助您。在本 书的附录 中列出了相关资源。

如何使用本书学习R

[编辑 | 编辑源代码]

本书中的主要文本描述了统计分析的原理和方法,与您使用的统计软件包无关。但是,在主要文本之外,还包含大量的“R主题”:使用R来阐述特定点的练习和示例。您可能会发现需要一些时间才能适应R,特别是如果您不熟悉计算机语言的概念。

不用担心!本章和 第二章 中的主题应该可以帮助您入门,让您能够理解和使用R的基本功能。本章旨在帮助您入门:安装R后,您可以学习如何进行 简单的计算使用函数,如何 存储结果,如何 获取帮助,以及如何 退出。第一章中的几个练习主要展示了使用R时可用的可能性,而第二章则介绍了R使用方面的核心内容:特别是 向量因子读取数据数据帧 中,以及 绘制 各种 类型的 图表。从那时起,练习将更加侧重于统计分析。

如果您希望在进行统计讨论之前直接完成这些初始练习,您可以 在这里 查看它们。请注意,在线完成R主题时,如果您 设置Wikibooks 以更好地显示R命令,则会更具视觉吸引力。如果R主题妨碍了您阅读主要文本,您可以点击每个框右上角的箭头将其隐藏。

如果您尚未在计算机上安装R,请从 https://r-project.org.cn 免费下载最新版本并安装基本系统。目前您无需安装任何额外的包。安装完成后,启动R,您应该看到类似以下内容

R version 2.11.1 (2010-05-31)
Copyright (C) 2010 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

>

您现在处于R会话中。R是一个命令驱动的程序,那个看起来很可怕的“>”字符意味着R正在等待您输入内容。不要害怕。您很快就会掌握最简单的命令,而这对于现在来说已经足够了。您最终会发现,命令行驱动的界面为您提供了 [1] 在使用更“用户友好”的软件包时无法获得的自由度和功能。

v·d·e

R作为计算器

类似这样的文本用于讨论R相关的内容。可以通过按照本书中出现的顺序阅读这些部分来学习R的基础知识。还有一些命令可以直接在R中输入;您应该能够直接将它们复制粘贴到R会话中 [2]。尝试以下内容以了解如何将R用作简单的计算器
输入
100+2/3
结果
> 100+2/3

[1] 100.6667

在没有关于如何处理命令输出的任何说明的情况下,R通常会将结果打印到屏幕上。暂时忽略[1]之前的数字:当R一次输出多个数字时,我们会看到它的用途。请注意,R遵循标准的数学规则,即先进行乘法和除法,然后再进行加法和减法:它先将2除以3,然后再加100。
R命令有时可能难以理解,因此在某些情况下,用注释来解释它们可能很有用。这可以通过输入一个井号(#)字符来实现:同一行上的任何其他文本都将被R忽略。这将在本书中的R示例中广泛使用,例如
输入
#this is a comment: R will ignore it
(100+2)/3    #You can use round brackets to group operations so that they are carried out first
5*10^2       #The symbol * means multiply, and ^ means "to the power", so this gives 5 times (10 squared), i.e. 500
1/0          #R knows about infinity (and minus infinity)
0/0          #undefined results take the value NaN ("not a number")
(0i-9)^(1/2) #for the mathematically inclined, you can force R to use complex numbers
结果
> #这是一条注释:R会忽略它

> (100+2)/3 #可以使用圆括号将操作分组,使其先执行 [1] 34 > 5*10^2 #*符号表示乘法,^符号表示“乘方”,因此这是5乘以(10的平方) [1] 500 > 1/0 #R知道无穷大(和负无穷大) [1] Inf > 0/0 #未定义的结果将取NaN值(“非数字”) [1] NaN > (0i-9)^(1/2) #对于数学爱好者,您可以强制R使用复数 [1] 0+3i

  • 如果您不了解复数,不用担心:这里它们并不重要。
  • 请注意,您不能使用花括号{}或方括号[]将操作分组在一起


v·d·e

存储对象

R 是一种被称为“面向对象”的程序。所有内容(包括您刚刚输入的数字)都是一种对象。稍后我们将了解为什么这个概念如此有用。目前,您只需要注意,您可以为对象命名,这样可以将对象存储起来以便以后使用。可以使用类似箭头的符号<--> 来分配名称,如下面的练习所示。使用哪个符号取决于您是否喜欢将名称放在前面还是后面(将 -> 视为“放入”,将 <- 视为“设置为”可能会有所帮助)。与许多统计软件包不同,R 通常不会显示您执行的分析结果。相反,分析通常会以生成一个可以存储的对象而结束。然后,您可以随时从对象中获取结果。因此,在使用 R 进行统计时,您会经常发现自己需要命名和存储对象。您选择的名称应由字母、数字和“.” 字符组成[3],并且不能以数字开头。
输入
0.001 -> small.num                #Store the number 0.0001 under the name "small.num" (i.e. put 0.0001 into small.num)
big.num <- 10 * 100               #You can put the name first if you reverse the arrow (set big.num to 10000).
big.num+small.num+1               #Now you can treat big.num and small.num as numbers, and use them in calculations
my.result <- big.num+small.num+2  #And you can store the result of any calculation
my.result                         #To look at the stored object, just type its name
pi                                #There are some named objects that R provides for you
结果
> 0.001 -> small.num # 将数字 0.0001 存储在名为“small.num”的名称下(即,将 0.0001 放入 small.num 中)

> big.num <- 10 * 100 # 如果您反转箭头,可以将名称放在前面(将 big.num 设置为 10000)。 > big.num+small.num+1 # 现在您可以将 big.num 和 small.num 视为数字,并在计算中使用它们 [1] 1001.001 > my.result <- big.num+small.num+2 # 您可以存储任何计算的结果 > my.result # 要查看存储的对象,只需键入其名称 [1] 1002.001 > pi # R 为您提供了一些命名对象 [1] 3.141593

请注意,当命令的最终结果是存储(分配)对象时,例如在输入行 1、2 和 4 上,R 不会在屏幕上打印任何内容。


v·d·e

函数

除了数字之外,R 中最有用的一些命名对象可能是函数。您在 R 中执行的几乎所有有用操作都是使用函数进行的,并且 R 默认情况下提供了许多函数。您可以通过键入函数名称,后跟一对圆括号来使用(或“调用”)函数。例如,启动文本提到了以下函数,如果您想在出版物中引用 R,您可能会发现它很有用
输入
citation()
结果
> citation() 在出版物中引用 R 时,请使用:R 核心开发团队 (2008)。R:统计计算的语言和环境。R 统计计算基金会,奥地利维也纳。ISBN 3-900051-07-0,URL http://www.R-project.org。LaTeX 用户的 BibTeX 条目是 @Manual{, url = {http://www.R-project.org}, title = {R:一种用于统计计算的语言和环境}, author = {{R 核心开发团队}}, organization = {R 统计计算基金会}, address = {维也纳,奥地利}, year = {2008}, note = {{ISBN} 3-900051-07-0}, } 我们投入了大量时间和精力来创建 R,请在使用它进行数据分析时引用它。另请参阅‘citation("pkgname")’ 以引用 R 包。
许多 R 函数可以根据您提供的参数产生不同的结果。参数放在圆括号内,用逗号隔开。许多函数有一个或多个可选参数:也就是说,您可以选择是否提供它们。citation() 函数就是一个例子。它可以接受一个可选参数,该参数指定 R 附加包 的名称。如果您没有提供可选参数,通常会有一个默认值(对于 citation(),这个默认值是 "base",即提供基本包的引用:提供 R 语言大多数基础的包)。

函数的大多数参数都是命名的。例如,citation 函数的第一个参数名为package。为了提供额外的清晰度,在使用函数时,您可以使用更长的形式name=value 来提供参数。因此

citation("base")

citation(package="base")
相同。如果一个函数可以接受多个参数,使用长格式还可以更改参数的顺序,如下面的示例代码所示。
输入
citation("base")      #Does the same as citation(), because the default for the first argument is "base"
                      #Note: quotation marks are needed in this particular case (see discussion below)
citation("datasets")  #Find the citation for another package (in this case, the result is very similar)
sqrt(25)              #A different function: "sqrt" takes a single argument, returning its square root.
sqrt(25-9)            #An argument can contain arithmetic and so forth
sqrt(25-9)+100        #The result of a function can be used as part of a further analysis
max(-10, 0.2, 4.5)    #This function returns the maximum value of all its arguments
sqrt(2 * max(-10, 0.2, 4.5))             #You can use results of functions as arguments to other functions
x <- sqrt(2 * max(-10, 0.2, 4.5)) + 100  #... and you can store the results of any of these calculations
x
log(100)              #This function returns the logarithm of its first argument
log(2.718282)         #By default this is the natural logarithm (base "e")
log(100, base=10)     #But you can change the base of the logarithm using the "base" argument
log(100, 10)          #This does the same, because "base" is the second argument of the log function
log(base=10, 100)     #To have the base as the first argument, you have to use the form name=value
结果
> citation("base") # 与 citation() 相同,因为第一个参数的默认值为“base” 在出版物中引用 R 时,请使用:R 核心开发团队 (2008)。R:统计计算的语言和环境。R 统计计算基金会,奥地利维也纳。ISBN 3-900051-07-0,URL http://www.R-project.org。LaTeX 用户的 BibTeX 条目是 @Manual{, title = {R:一种用于统计计算的语言和环境}, author = {{R 核心开发团队}}, organization = {R 统计计算基金会}, address = {维也纳,奥地利}, year = {2008}, note = {{ISBN} 3-900051-07-0}, url = {http://www.R-project.org}, } 我们投入了大量时间和精力来创建 R,请在使用它进行数据分析时引用它。另请参阅‘citation("pkgname")’ 以引用 R 包。 > # 注意:在这种情况下,需要引号(见下文讨论) > citation("datasets") # 查找另一个包的引用(在本例中,结果非常相似)“datasets” 包是 R 的一部分。在出版物中引用 R 时,请使用:R 核心开发团队 (2008)。R:统计计算的语言和环境。R 统计计算基金会,奥地利维也纳。ISBN 3-900051-07-0,URL http://www.R-project.org。LaTeX 用户的 BibTeX 条目是 @Manual{, title = {R:一种用于统计计算的语言和环境}, author = {{R 核心开发团队}}, organization = {R 统计计算基金会}, address = {维也纳,奥地利}, year = {2008}, note = {{ISBN} 3-900051-07-0}, url = {http://www.R-project.org}, } 我们投入了大量时间和精力来创建 R,请在使用它进行数据分析时引用它。另请参阅‘citation("pkgname")’ 以引用 R 包。 > sqrt(25) # 不同的函数:“sqrt” 接受一个参数,返回其平方根。 [1] 5 > sqrt(25-9) # 参数可以包含算术运算等等 [1] 4 > sqrt(25-9)+100 # 函数的结果可以用作进一步分析的一部分 [1] 104 > max(-10, 0.2, 4.5) # 此函数返回其所有参数中的最大值 [1] 4.5 > sqrt(2 * max(-10, 0.2, 4.5)) # 您可以将函数的结果用作其他函数的参数 [1] 3 > x <- sqrt(2 * max(-10, 0.2, 4.5)) + 100 # ... 您可以存储任何这些计算的结果 > x [1] 103 > log(100) # 此函数返回其第一个参数的对数 [1] 4.60517 > log(2.718282) # 默认情况下,这是自然对数(以“e”为底) [1] 1 > log(100, base=10) # 但是您可以使用“base”参数更改对数的底 [1] 2 > log(100, 10) # 这与上面相同,因为“base”是 log 函数的第二个参数 [1] 2 > log(base=10, 100) # 要将底作为第一个参数,您必须使用 name=value 的形式 [1] 2
请注意,在键入普通文本(例如包的名称)时,需要将其放在引号中[4],以避免与对象的名称混淆。换句话说,在 R 中
citation

指的是函数,而

"citation"

是一个文本“字符串”。例如,当为绘图提供标题等时,这很有用。

您可能会发现,了解 R 的最棘手方面之一是了解在特定情况下使用哪个函数。幸运的是,R 不仅为所有函数提供文档,而且还提供搜索文档的方法,以及其他获得帮助的方法。


v·d·e

获取帮助

在 R 中有许多获取帮助的方法,并且也有大量在线信息。大多数 R 安装都带有名为“R 入门”的相当详细的帮助文件,但对于第一次使用统计软件包的用户来说,这可能过于技术化。R 中自动提供的几乎所有函数和其他对象都带有一个帮助页面,该页面提供了有关如何使用它们的详细说明。这些帮助页面通常还包含示例,这些示例对新用户来说可能特别有用。但是,如果您不知道要查找的内容的名称,那么找到帮助可能并不容易,尽管可以搜索与对象相关的关键字和概念。R 的某些版本无需键入命令即可轻松访问帮助文件(例如,提供菜单栏的版本通常有一个“帮助”菜单,而 Macintosh 界面在右上角也有一个帮助框)。但是,始终可以通过键入适当的命令来访问此功能。您可能想在 R 会话中键入以下内容中的部分或全部内容(此处未列出输出,因为结果将取决于您的 R 系统)。
help.start()            #A web-based set of help pages (try the link to "An Introduction to R")
help(sqrt)              #Show details of the "sqrt" and similar functions
?sqrt                   #A shortcut to do the same thing
example(sqrt)           #run the examples on the bottom of the help page for "sqrt"
help.search("maximum")  #gives a list of functions involving the word "maximum", but oddly, "max" is not in there!
### The next line is commented out to reduce internet load. To try it, remove the first # sign.
#RSiteSearch("maximum")  #search the R web site for anything to do with "maximum". Probably overkill here!
最后一个命令说明了使用 R 帮助函数时可能会遇到的问题。帮助文件搜索功能有时会有点不稳定。如果你找不到你要找的东西,通常查看任何听起来比较相似或相关的帮助文件的“另请参阅”部分是有用的。在这种情况下,你可能会最终通过查看which.max()帮助文件的“另请参阅”部分找到max()函数。不太理想!


v·d·e

退出 R

要退出 R,你可以使用函数quit()或其相同的快捷方式q(),它们不需要任何参数。或者,如果你的 R 版本有菜单栏,你可以用鼠标选择“退出”或“关闭”。
q()
无论哪种方式,系统都会询问你是否要保存工作区映像。这将保存你迄今为止完成的所有工作,并在下次启动 R 时加载它。虽然这听起来是个好主意,但如果你回答“是”,你很快就会发现自己每次启动 R 时都加载了很多无关的过去分析。所以,如果你想干净地退出,请回答“否”。


设置维基教科书

[编辑 | 编辑源代码]

在你开始主要文本之前,我们建议你添加一些特定的维基教科书首选项。前三行将以更美观的格式显示 R 命令示例。最后一行提供了一个更美观的格式来显示由多个绘图组成的图形(称为子图)。你可以通过创建用户 CSS 文件来完成此操作,如下所示。

  • 确保你已登录(如果你还没有帐户,请创建一个)。
  • 访问你的个人 css 样式表,位于 Special:MyPage/skin.css
  • 点击“编辑此页面”。
  • 将以下几行粘贴到大型编辑框中
pre {padding:0; border: none; margin:0; line-height: 1.5em; }
.code .input ol {list-style: none; font-size: 1.2em; margin-left: 0;}
.code .input ol li div:before {content: "\003E \0020";}
table.subfigures div.thumbinner, table.subfigures tr td, table.subfigures {border: 0;}

[5]

  • 如果你了解任何CSS,请对这个样式表进行你喜欢的任何更改。
  • 最后,通过点击“保存页面”来保存页面。

够了!让我们继续主要文本。

  1. 这些是拙劣的统计笑话尝试,你很快就会发现。
  2. 根据你如何查看这本书,你可能会在每个命令前面看到一个“>”字符。这不是要输入的命令的一部分:它是 R 本身产生的,提示你输入一些内容。如果你从这本书的在线版本复制和粘贴,这个字符应该会被自动省略,但如果你正在阅读纸质版本或 pdf 版本,你应该在输入 R 时省略“>”提示。
  3. 如果你熟悉计算机编程语言,你可能习惯在名称中使用下划线(“_”)字符。在 R 中,通常使用“.”来代替它。
  4. 你可以使用单引号(')或双引号(")来分隔文本字符串,只要开始和结束引号匹配即可
  5. (请注意,这是一个临时解决方法,直到 GeSHi 支持 R 代码,在这种情况下,统计分析:使用 R 入门/R/语法 可以更改。css 代码应该真正读取
    .pre {padding:0; border: none; margin:0; line-height: 1.5em; } .source-R ol {list-style: none; font-size: 1.2em; margin-left: 0;} .source_R ol li div:before {content: "\003E \0020";}
下一页: 第 1 章 | 上一页: 封面
首页: 统计分析:使用 R 入门
华夏公益教科书