统计分析:R入门与R基础
R是一个命令驱动的统计软件包。乍一看,这可能让人感觉难以使用。但是,有很多理由让我们学习使用这个程序进行统计分析。其中最重要的两个原因是
- R是免费的;您可以从 https://r-project.org.cn 下载并安装到几乎任何类型的计算机上。
- 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] 在使用更“用户友好”的软件包时无法获得的自由度和功能。
R作为计算器
100+2/3
[1] 100.6667
#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
> (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
- 如果您不了解复数,不用担心:这里它们并不重要。
- 请注意,您不能使用花括号{}或方括号[]将操作分组在一起
存储对象
<-
和 ->
来分配名称,如下面的练习所示。使用哪个符号取决于您是否喜欢将名称放在前面还是后面(将 ->
视为“放入”,将 <-
视为“设置为”可能会有所帮助)。与许多统计软件包不同,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
> 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
函数
citation()
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
指的是函数,而
"citation"
是一个文本“字符串”。例如,当为绘图提供标题等时,这很有用。
您可能会发现,了解 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!
which.max()
帮助文件的“另请参阅”部分找到max()
函数。不太理想!
退出 R
quit()
或其相同的快捷方式q()
,它们不需要任何参数。或者,如果你的 R 版本有菜单栏,你可以用鼠标选择“退出”或“关闭”。q()
在你开始主要文本之前,我们建议你添加一些特定的维基教科书首选项。前三行将以更美观的格式显示 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;}
- 如果你了解任何CSS,请对这个样式表进行你喜欢的任何更改。
- 最后,通过点击“保存页面”来保存页面。
够了!让我们继续主要文本。
- ↑ 这些是拙劣的统计笑话尝试,你很快就会发现。
- ↑ 根据你如何查看这本书,你可能会在每个命令前面看到一个“>”字符。这不是要输入的命令的一部分:它是 R 本身产生的,提示你输入一些内容。如果你从这本书的在线版本复制和粘贴,这个字符应该会被自动省略,但如果你正在阅读纸质版本或 pdf 版本,你应该在输入 R 时省略“>”提示。
- ↑ 如果你熟悉计算机编程语言,你可能习惯在名称中使用下划线(“_”)字符。在 R 中,通常使用“.”来代替它。
- ↑ 你可以使用单引号(')或双引号(")来分隔文本字符串,只要开始和结束引号匹配即可
- ↑ (请注意,这是一个临时解决方法,直到 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";}