跳转到内容

统计分析:使用 R/R/R 基础知识的入门

来自维基教科书,开放书籍,开放世界

R 基础知识

[编辑 | 编辑源代码]

如果您完成所有这些主题中的练习,您应该能够相对熟练地使用 R(另请参见编程)。


以这种方式标记的文本用于讨论 R 特定的要点。阅读这些章节的顺序,可以学习 R 的基础知识。还有一些可以直接输入 R 的命令;您应该能够直接将它们复制粘贴到您的 R 会话中[1]。尝试以下方法,了解如何将 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

  • 如果您对复数一无所知,不用担心:它们在这里并不重要。
  • 请注意,您不能使用大括号 {} 或方括号 [] 对操作进行分组。


R 被称为“面向对象”的程序。所有内容(包括您刚刚输入的数字)都是一种类型的对象。稍后我们会看到这个概念为什么如此有用。目前,您只需要注意您可以为一个对象命名,这样可以将其存储起来以便日后使用。可以使用箭头状符号 <--> 来分配名称,如下面的练习中所示。您使用哪个符号取决于您是否更喜欢将名称放在前面或后面(将 -> 视为“放入”和 <- 视为“设置为”可能会有所帮助)。与许多统计软件包不同,R 通常不会显示您执行的分析的结果。相反,分析通常以产生一个可以存储的对象而告终。然后可以随时从对象中获取结果。因此,在 R 中进行统计分析时,您经常会发现自己命名和存储对象。您选择的名称应包含字母、数字和“.” 字符[2],并且不能以数字开头。
输入
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 不会打印任何内容到屏幕上。


除了数字之外,R 中可能最有用的命名对象是 函数。您在 R 中进行的大部分有用的操作都是使用函数完成的,并且 R 默认情况下提供了许多函数。您可以通过键入其名称,后跟一对圆括号来使用(或“调用”)函数。例如,启动文本提到了以下函数,如果您想在已发表的作品中引用 R,您可能会发现它很有用
输入
citation()
结果
> citation() 要在出版物中引用 R,请使用:R Development Core Team (2008). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0, URL http://www.R-project.org. A BibTeX entry for LaTeX users is @Manual{, url = {http://www.R-project.org}, title = {R: A Language and Environment for Statistical Computing}, author = {{R Development Core Team}}, organization = {R Foundation for Statistical Computing}, address = {Vienna, Austria}, 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 Development Core Team (2008). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0, URL http://www.R-project.org. A BibTeX entry for LaTeX users is @Manual{, title = {R: A Language and Environment for Statistical Computing}, author = {{R Development Core Team}}, organization = {R Foundation for Statistical Computing}, address = {Vienna, Austria}, year = {2008}, note = {{ISBN} 3-900051-07-0}, url = {http://www.R-project.org}, } 我们在创建 R 上投入了大量时间和精力,请在使用它进行数据分析时引用它。另请参阅 ‘citation("pkgname")’ 以引用 R 包。 > #注意:在这种特定情况下需要引号(见下文讨论) > citation("datasets") #查找另一个包的引用(在本例中,结果非常相似) 'datasets' 包是 R 的一部分。为了在出版物中引用 R,请使用:R Development Core Team (2008). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0, URL http://www.R-project.org. A BibTeX entry for LaTeX users is @Manual{, title = {R: A Language and Environment for Statistical Computing}, author = {{R Development Core Team}}, organization = {R Foundation for Statistical Computing}, address = {Vienna, Austria}, 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
请注意,在键入普通文本(例如包的名称)时,需要将其用引号[3]括起来,以避免与对象名称混淆。换句话说,在 R 中
citation

指的是一个函数,而

"citation"

是一个文本 "字符串"。这在提供绘图标题等情况下很有用。

您可能会发现,了解 R 最棘手的一方面是了解在特定情况下使用哪个函数。幸运的是,R 不仅为其所有函数提供文档,还提供搜索文档的方法,以及其他获得帮助的方法。
在 R 中获得帮助的方法有很多,在线信息也很丰富。大多数 R 安装都带有相当详细的帮助文件,名为 "An Introduction to 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() 函数。不太理想!。

统计分析:使用 R/R/退出简介

R 中最基本的对象之一是向量,用于存储同一类型的多个测量值(例如数据变量)。向量可以存储几种不同类型的数据。最常见的是数值向量,其中向量的每个元素都只是一个数字。其他常用的向量类型包括字符向量(其中每个元素都是一段文本)和逻辑向量(其中每个元素都是 TRUEFALSE[4])。在本主题中,我们将使用 "datasets" 包提供的一些示例向量,其中包含美国州的数据(参见 ?state)。R 本身就是一个基于向量的程序;事实上,我们之前计算中使用的数字只是被视为具有单个元素的向量。这意味着 R 中的大多数基本函数在作为参数给出向量时将按预期工作,如下所示。
输入
state.area                #a NUMERIC vector giving the area of US states, in square miles
state.name                #a CHARACTER vector (note the quote marks) of state names 
sq.km <- state.area*2.59  #Arithmetic works on numeric vectors, e.g. convert sq miles to sq km
sq.km                     #... the new vector has the calculation applied to each element in turn
sqrt(sq.km)               #Many mathematical functions also apply to each element in turn 
range(state.area)         #But some functions return different length vectors (here, just the max & min).
length(state.area)        #and some, like this useful one, just return a single value.
结果
> state.area #一个 NUMERIC 向量,以平方英里为单位给出美国各州的面积
[1]  51609 589757 113909  53104 158693 104247   5009   2057  58560  58876   6450  83557  56400

[14] 36291 56290 82264 40395 48523 33215 10577 8257 58216 84068 47716 69686 147138 [27] 77227 110540 9304 7836 121666 49576 52586 70665 41222 69919 96981 45333 1214 [40] 31055 77047 42244 267339 84916 9609 40815 68192 24181 56154 97914 > state.name #一个 CHARACTER 向量(注意引号),包含州名

[1] "Alabama"            "Alaska"             "Arizona"            "Arkansas"          
[5] "California"         "Colorado"           "Connecticut"        "Delaware"          
[9] "Florida"            "Georgia"            "Hawaii"             "Idaho"             

[13] "Illinois" "Indiana" "Iowa" "Kansas" [17] "Kentucky" "Louisiana" "Maine" "Maryland" [21] "Massachusetts" "Michigan" "Minnesota" "Mississippi" [25] "Missouri" "Montana" "Nebraska" "Nevada" [29] "New Hampshire" "New Jersey" "New Mexico" "New York" [33] "North Carolina" "North Dakota" "Ohio" "Oklahoma" [37] "Oregon" "Pennsylvania" "The smallest state" "South Carolina" [41] "South Dakota" "Tennessee" "Texas" "Utah" [45] "Vermont" "Virginia" "Washington" "West Virginia" [49] "Wisconsin" "Wyoming" > sq.km <- state.area*2.59 #标准算术适用于数值向量,例如将平方英里转换为平方公里 > sq.km #... 给出另一个向量,其中对每个元素依次执行计算

[1]  133667.31 1527470.63  295024.31  137539.36  411014.87  269999.73   12973.31    5327.63
[9]  151670.40  152488.84   16705.50  216412.63  146076.00   93993.69  145791.10  213063.76

[17] 104623.05 125674.57 86026.85 27394.43 21385.63 150779.44 217736.12 123584.44 [25] 180486.74 381087.42 200017.93 286298.60 24097.36 20295.24 315114.94 128401.84 [33] 136197.74 183022.35 106764.98 181090.21 251180.79 117412.47 3144.26 80432.45 [41] 199551.73 109411.96 692408.01 219932.44 24887.31 105710.85 176617.28 62628.79 [49] 145438.86 253597.26 > sqrt(sq.km) #许多数学函数也依次应用于每个元素

[1]  365.60540 1235.90883  543.16140  370.86299  641.10441  519.61498  113.90044   72.99062
[9]  389.44884  390.49819  129.24976  465.20171  382.19890  306.58390  381.82601  461.58830

[17] 323.45487 354.50609 293.30334 165.51263 146.23826 388.30328 466.62203 351.54579 [25] 424.83731 617.32278 447.23364 535.06878 155.23324 142.46136 561.35100 358.33202 [33] 369.04978 427.81111 326.74911 425.54695 501.17940 342.65503 56.07370 283.60615 [41] 446.71213 330.77479 832.11058 468.96955 157.75712 325.13205 420.25859 250.25745 [49] 381.36447 503.58441 > range(state.area) #但有些函数返回不同长度的向量(这里,只是最大值和最小值)。 [1] 1214 589757 > length(state.area) #有些函数(如这个有用的函数)只返回一个值。 [1] 50

请注意,您的输出的第一部分可能与上面的略有不同。根据屏幕的宽度,每行输出中打印的元素数量可能不同。这是方括号中数字的原因,这些数字是在将向量打印到屏幕时生成的。这些带括号的数字给出该行上第一个元素的位置,这是一个有用的视觉辅助。例如,查看 state.name 的打印输出,并从第二行开始计数,我们可以知道第八个州是特拉华州。
您可能偶尔需要从头开始创建自己的向量(尽管大多数向量是从处理已存在的文件中的数据获得的)。用于构建向量的最常用函数是 c(),之所以这样命名是因为它将concatenates对象连接在一起。但是,如果您想创建由数字的规律序列组成的向量(例如 2、4、6、8、10、12 或 1、1、2、2、1、1、2、2),可以使用几个替代函数,包括 seq()rep(): 运算符。
输入
c("one", "two", "three", "pi")  #Make a character vector
c(1,2,3,pi)                     #Make a numeric vector
seq(1,3)                        #Create a sequence of numbers
1:3                             #A shortcut for the same thing (but less flexible)
i <- 1:3                        #You can store a vector
i
i <- c(i,pi)                    #To add more elements, you must assign again, e.g. using c() 
i                             
i <- c(i, "text")               #A vector cannot contain different data types, so ... 
i                               #... R converts all elements to the same type
i+1                             #The numbers are now strings of text: arithmetic is impossible 
rep(1, 10)                      #The "rep" function repeats its first argument
rep(3:1,10)                     #The first argument can also be a vector
huge.vector <- 0:(10^7)         #R can easily cope with very big vectors
#huge.vector #VERY BAD IDEA TO UNCOMMENT THIS, unless you want to print out 10 million numbers
rm(huge.vector)                 #"rm" removes objects. Deleting huge unused objects is sensible
结果
> c("one", "two", "three", "pi") #创建一个字符向量

[1] "one" "two" "three" "pi" > c(1,2,3,pi) #创建一个数值向量 [1] 1.000000 2.000000 3.000000 3.141593 > seq(1,3) #创建一个数字序列 [1] 1 2 3 > 1:3 #相同的快捷方式(但灵活性较差) [1] 1 2 3 > i <- 1:3 #您可以存储一个向量 > i [1] 1 2 3 > i <- c(i,pi) #要添加更多元素,您必须再次赋值,例如使用 c() > i [1] 1.000000 2.000000 3.000000 3.141593 > i <- c(i, "text") #向量不能包含不同类型的数据,因此 ... > i #... R 将所有元素转换为相同类型 [1] "1" "2" "3" "3.14159265358979" "text" > i+1 #数字现在是文本字符串:算术运算不可能 Error in i + 1 : non-numeric argument to binary operator > rep(1, 10) # "rep" 函数重复其第一个参数

[1] 1 1 1 1 1 1 1 1 1 1

> rep(3:1,10) #第一个参数也可以是一个向量

[1] 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1

> huge.vector <- 0:(10^7) #R 可以轻松处理非常大的向量 > #huge.vector # 除非您想打印出 1000 万个数字,否则不要取消此注释 > rm(huge.vector) #"rm" 删除对象。删除未使用的巨大对象是明智之举

R 中的分类变量存储为一个称为因子的特殊向量对象。这不同于填充了一组名称的字符向量(不要将两者混淆)。特别是,R 必须被告知每个元素只能是几个已知级别之一(例如MaleFemale)。如果您尝试将具有不同未知级别的数

factor() 函数用于创建因子并定义可用水平。默认情况下,水平将从向量中的水平获取***。实际上,您通常不需要使用 factor(),因为在从文件读取数据时,R 默认情况下会将文本转换为因子(参见 统计分析:使用 R 入门 / R / R / 数据框)。您可能需要使用 as.factor()。在内部,R 将水平存储为从 1 开始的数字,但并非总是很明显哪个数字对应哪个水平,通常不需要知道。

序数变量,即水平具有自然顺序的因子,在 R 中被称为 有序因子。它们可以通过创建因子的正常方式创建,但需要额外指定 ordered=TRUE
输入
state.region # 因子的示例:请注意,水平被打印出来

state.name # 这 *不是* 一个因子 state.name[1] <- "Any text" # 可以在字符向量中替换文本 state.region[1] <- "Any text" # 但不能在因子中替换文本 state.region[1] <- "South" # 这可以 state.abb # 这不是一个因子,只是一个字符向量

character.vector <- c("Female", "Female", "Male", "Male", "Male", "Female", "Female", "Male", "Male", "Male", "Male", "Male", "Female", "Female" , "Male", "Female", "Female", "Male", "Male", "Male", "Male", "Female", "Female", "Female", "Female", "Male", "Male", "Male", "Female" , "Male", "Female", "Male", "Male", "Male", "Male", "Male", "Female", "Male", "Male", "Male", "Male", "Female", "Female", "Female") #a bit tedious to do all that typing
  1. 使用代码可能更容易,例如,女性为 1,男性为 2

Coded <- factor(c(1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1)) Gender <- factor(Coded, labels=c("Female", "Male")) # 然后可以将它转换为命名水平

结果
收集数据时,某些数据点通常是未知的。这由于各种原因发生。例如,在分析实验数据时,我们可能记录了每个实验的多个变量(例如,温度时间 等),但忘记(或无法)记录一个实例中的 温度。或者,在收集关于美国州份的社会数据时,某些州可能不记录某些感兴趣的统计数据。另一个例子是泰坦尼克号沉没时的船上乘客数据,经过仔细研究,已经确定了船上 2207 人的票价等级,但无法确定其中 10 多名遇难者的年龄(参见 http://www.encyclopedia-titanica.org)。我们可以简单地省略缺失数据,但在许多情况下,我们有一些变量的信息,而另一些变量则没有。例如,我们可能不想因为某个州缺少一个特定的感兴趣数据而完全省略它。为此,R 提供了一个特殊的值,NA,表示“不可用”。任何向量,数值、字符或逻辑,都可以包含 NA 的元素。这些元素可以通过函数“is.na”识别。
输入
some.missing <- c(1,NA)
is.na(some.missing)
结果
some.missing <- c(1,NA)

is.na(some.missing) [1] FALSE TRUE

请注意,如果存在缺失数据,一些分析很难执行。可以使用“complete.cases”或“na.omit”来构造省略缺失值的。数据集。

统计分析:使用 R 入门 / R / 矩阵和数组

R 对向量中可以包含的内容非常严格。所有元素必须是相同类型,而且必须是数字类型[5]、逻辑值或文本字符串[6]。如果您想要一个包含不同类型元素的集合,或者不是允许的向量类型之一,则需要使用 列表
输入
l1 <- list(a=1, b=1:3)
l2 <- c(sqrt, log) #
结果

统计分析:使用 R 入门 / R / 简单绘图

在 R 中制作粗略的图表非常容易,尽管调整图表以获得特定外观可能很耗时。默认设置通常很合理。
输入
stripchart(state.areas, xlab="Area (sq. miles)") #see method="stack" & method="jitter" for others
boxplot(sqrt(state.area))
hist(sqrt(state.area))
hist(sqrt(state.area), 25)
plot(density(sqrt(state.area))
plot(UKDriverDeaths)

qqnorm()
ecdf(
结果

统计分析:使用 R 入门 / R / 数据框 统计分析:使用 R 入门 / R / 获取数据到 R 统计分析:使用 R 入门 / R / 双变量图

  1. 根据您查看本书的方式,您可能在每个命令前面看到一个“>”字符。这不是要输入的命令的一部分:它是 R 本身产生的,用于提示您输入内容。如果您从本书的在线版本中复制和粘贴,此字符应该自动被省略,但如果您阅读的是纸质或 pdf 版本,则在键入 R 时,您应该省略“>”提示。
  2. 如果您熟悉计算机编程语言,您可能习惯在名称中使用下划线(“_”)字符。在 R 中,通常使用“.”来代替。
  3. 您可以使用单引号(')或双引号(")来分隔文本字符串,只要开始和结束引号匹配即可
  4. 这些是 R 中的特殊单词,不能用作对象的名称。对象 TFTRUEFALSE 的临时快捷方式,但如果您使用它们,请注意:由于 T 和 F 只是普通的对象名称,您可以通过覆盖它们来更改它们的含义。
  5. 实际上有 3 种允许的数字类型:“普通”数字、复数和简单整数。本书几乎完全处理其中的第一种类型。
  6. 这并不完全正确,但除非您是计算机专家,否则您不太可能使用最终类型:存储“原始”计算机位的元素向量,参见 ?raw
华夏公益教科书