界面熟悉和基本操作
R是一种区分大小写的解释型语言。你可以在命令提示符(>)后每次输入并执行一条命令,或者一次性执行写在脚本文件中的一组命令。R中有多种数据类型,包括向量、矩阵、数据框(与数据集类似)以及列表(各种对象的集合)。
可以当作最基本的计算器来使用。
基本运算
- 加:
+
- 减:
-
- 乘:
*
- 除:
/
- 乘方:
^
- 均值:
mean()
- 方差:
var()
- 标准差:
sd()
- 中位数:
median()
- 百分位数:
quantile()
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiI3KzdcbjctN1xuNyo3XG43LzdcbjdeMlxuc3FydCg3KVxuXG5tZWFuKG10Y2FycyRtcGcpXG5cbnZhcihtdGNhcnMkbXBnKVxuXG5zZChtdGNhcnMkbXBnKVxuXG5tb2RlKG10Y2FycyRtcGcpXG5cbnF1YW50aWxlKG10Y2FycyRtcGcpIn0=
赋值
R使用<-作为赋值符号。
- 简单说来,赋值就是给一些东西取个名字,这样以后方便叫它。
- 然后你只需要输入my_var,R Console就将42输出来:
- 是这么操作的:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJteV92YXI8LTQyXG5teV92YXIifQ==
对象
一个对象可以是任何能被赋值的东西。对于R来说,对象可以是任何东西(数据、函数、图形、分析结果,等等)
c() 这个函数
我们也可以使用c() 这个函数 function(c 意指是 combine)来赋值,它把多个对象放到一起,组成向量。
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJsdWNreV9udW1iZXJzIDwtIGMoNywgNzcpXG5sdWNreV9udW1iZXJzIn0=
注释
- 注释由符号#开头。在#之后出现的任何文本都会被R忽略而不运行。
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIDIrMyJ9
帮助查询
- 输入?c 或者help(c),在RStudio 右下角的介面 召唤出帮助文件 Help。
功能包
上面的c()是我们遇到的第一个函数,我们以后还会遇到许许多多的函数。而功能包则是函数的有机组合,以实现更丰富的功能。
R自带了一系列默认包(包括base、datasets、utils、grDevices、graphics、stats以及methods),它们提供了种类繁多的默认函数和数据集。
其他包则按需要调用:先安装,再载入,然后就可以使用啦!
安装功能包的函数 install.packages()
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJpbnN0YWxsLnBhY2thZ2VzKFwiZHBseXJcIilcbmluc3RhbGwucGFja2FnZXMoXCJnZ3Bsb3QyXCIpXG5saWJyYXJ5KGRwbHlyKVxubGlicmFyeShnZ3Bsb3QyKSJ9
一个包仅需安装一次。但和其他软件类似,包经常被其作者更新。使用命令update.packages()
可以更新已经安装的包。
然后我们就可以愉快的使用包了,具体来说里面的各种函数和数据。包中往往提供了演示性的小型数据集和示例代码,能够让我们尝试这些新功能。
使用 help(package="package_name")
可以查看某个包的简短描述以及包中的函数名称和数据集名称的列表。使用函数help()
可以查看其中任意函数或数据集的更多细节。
查看路径和设置路径
路径(工作路径)是我们读取数据和存贮结果的地方。
在自己的RStuido的 concole 输入: getwd()
查看自己的当前路径。 setwd(yourpath)
设置想要的路径。
或者使用RStudio右下方,Files这个tab里的齿轮来查看和更改。
数据类型
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIENoYW5nZSBteV9udW1lcmljIHRvIGJlIDQyXG5teV9udW1lcmljIDwtIDQyXG5cbiMgQ2hhbmdlIG15X2NoYXJhY3RlciB0byBiZSBcInVuaXZlcnNlXCJcbm15X2NoYXJhY3RlciA8LSBcInVuaXZlcnNlXCJcblxuIyBDaGFuZ2UgbXlfbG9naWNhbCB0byBiZSBGQUxTRVxubXlfbG9naWNhbCA8LSBGQUxTRSJ9
–
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERlY2xhcmUgdmFyaWFibGVzIG9mIGRpZmZlcmVudCB0eXBlczpcbm15X251bWVyaWMgPC0gNDJcbm15X2NoYXJhY3RlciA8LSBcInVuaXZlcnNlXCJcbm15X2xvZ2ljYWwgPC0gRkFMU0VcblxuY2xhc3MobXlfbnVtZXJpYylcbmNsYXNzKG15X2NoYXJhY3RlcilcbmNsYXNzKG15X2xvZ2ljYWwpIn0=
因子 factor
是不是有点晕,不着急,我们看点例子:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJleGNlbGxlbmNlPC0gYyhcImV4Y2VsbGVudFwiLCBcImJhZFwiLCBcImdvb2RcIiwgXCJva2F5XCIsIFwiYmFkXCIpXG5leGNlbGxlbmNlXG5cbmV4Y2VsbGVuY2U8LSBmYWN0b3IoZXhjZWxsZW5jZSlcbmV4Y2VsbGVuY2VcblxuZXhjZWxsZW5jZSA8LSBmYWN0b3IoZXhjZWxsZW5jZSwgb3JkZXI9VFJVRSxcbiAgICAgICAgICAgICAgICAgICAgIGxldmVscz1jKFwiYmFkXCIsIFwib2theVwiLFwiZ29vZFwiLFwiZXhjZWxsZW50XCIpKVxuZXhjZWxsZW5jZSJ9
这里我们成功的把字符型变量excellence,先转换成了无序因子变量,再转换成了有顺序的因子变量。
- 数值型变量可以用levels和labels参数来编码成因子。如果男性被编码成1,女性被编码成2,则以下语句:
–
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJzZXg8LWMoMSwyLDIsMSwyLDEsMSwzKSBcbnNleFxuXG5zZXggPC0gZmFjdG9yKHNleCwgbGV2ZWxzPWMoMSwgMiksIGxhYmVscz1jKFwiTWFsZVwiLCBcIkZlbWFsZVwiKSlcbnNleCJ9
- 在这个栗子里,性别被当成类别型变量,标签“Male”和“Female”替代了1和2在结果中输出,而且所有不是1或2的性别变量将被设为缺失值。
数据结构
有这么几个:
vector 向量
matrix 矩阵
dataframe 数据集
list 列表
向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数c()可用来创建向量
注意:同一向量中无法混杂不同模式的数据。
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJhIDwtIGMoMSwgMiwgNSwgMywgNiwgLTIsIDQpXG5iIDwtIGMoXCJhcHBsZVwiLCBcInBlYXJcIiwgXCJvcmFuZ2VcIilcbmMgPC0gYyhUUlVFLCBGQUxTRSwgVFJVRSwgRkFMU0UsIFRSVUUsIEZBTFNFKSJ9
通过在方括号中给定元素所处位置的数值,我们可以访问向量中的元素。例如’a[c(2)]’用于访问向量a中的第二个元素。方括号里面的负数则表示将对应位置的元素忽略。
–
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJhIDwtIGMoMSwgMiwgNSwgMywgNiwgLTIsIDQpXG5iIDwtIGMoXCJhcHBsZVwiLCBcInBlYXJcIiwgXCJvcmFuZ2VcIilcbmMgPC0gYyhUUlVFLCBGQUxTRSwgVFJVRSwgRkFMU0UsIFRSVUUsIEZBTFNFKVxuXG5hWzNdXG5cbmFbLTNdIFxuXG5iW2MoMSwzKV1cblxuY1syOjRdIn0=
matrix 矩阵:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJteU1hdHJpeCA8LSBtYXRyaXgoMToxNSwgbnJvdz0zLCBuY29sPTUpICBcbm15TWF0cml4In0=
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJ5IDwtIG1hdHJpeCgxOjE4LCBucm93PTIpXG5cbnlcblxueVsyLF1cblxueVssMV1cblxueVsyLCAzXVxuXG55WzIsIGMoMyw1KV0ifQ==
- 矩阵都是二维的,和向量类似,矩阵中也仅能包含一种数据类型。
dataframe 数据框
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJzdHVkZW50cyA8LSBjKFwiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiKVxuc3R1ZGVudHNcbm1hdGhfc2NvcmU8LWMoMTAwLCA4MCwgNzAsIDk1KVxubWF0aF9zY29yZVxuZW5nbGlzaF9zY29yZTwtYyg5NiwgODYsIDc3LCA5OSlcbmVuZ2xpc2hfc2NvcmUifQ==
在这种情况下,使用数据框是最佳选择。
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJzdHVkZW50cyA8LSBjKFwiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiKVxuc3R1ZGVudHNcbm1hdGhfc2NvcmU8LWMoMTAwLCA4MCwgNzAsIDk1KVxubWF0aF9zY29yZVxuZW5nbGlzaF9zY29yZTwtYyg5NiwgODYsIDc3LCA5OSlcbmVuZ2xpc2hfc2NvcmVcblxuc3R1ZGVudHNfc2NvcmVzPC1kYXRhLmZyYW1lKHN0dWRlbnRzLCBtYXRoX3Njb3JlLCBlbmdsaXNoX3Njb3JlKSJ9
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJzdHVkZW50cyA8LSBjKFwiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiKVxubWF0aF9zY29yZTwtYygxMDAsIDgwLCA3MCwgOTUpXG5lbmdsaXNoX3Njb3JlPC1jKDk2LCA4NiwgNzcsIDk5KVxuXG5zdHVkZW50c19zY29yZXM8LWRhdGEuZnJhbWUoc3R1ZGVudHMsIG1hdGhfc2NvcmUsIGVuZ2xpc2hfc2NvcmUpXG5cbnN0dWRlbnRzX3Njb3Jlc1ssMl1cblxuc3R1ZGVudHNfc2NvcmVzWyxcIm1hdGhfc2NvcmVcIl1cblxuc3R1ZGVudHNfc2NvcmVzJG1hdGhfc2NvcmUifQ==
- 如果你想生成学生名字变量students和数学成绩变量math的新数据框,使用以下代码即可:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJzdHVkZW50cyA8LSBjKFwiQVwiLCBcIkJcIiwgXCJDXCIsIFwiRFwiKVxubWF0aF9zY29yZTwtYygxMDAsIDgwLCA3MCwgOTUpXG5lbmdsaXNoX3Njb3JlPC1jKDk2LCA4NiwgNzcsIDk5KVxuc3R1ZGVudHNfc2NvcmVzPC1kYXRhLmZyYW1lKHN0dWRlbnRzLCBtYXRoX3Njb3JlLCBlbmdsaXNoX3Njb3JlKVxuXG5kYXRhLmZyYW1lKHN0dWRlbnRzX3Njb3JlcyRzdHVkZW50cywgc3R1ZGVudHNfc2NvcmVzJG1hdGhfc2NvcmUpIn0=
list 列表
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJhIDwtIFwiTXkgRmlyc3QgTGlzdFwiXG5iIDwtIGMoMjUsIDI2LCAxOCwgMzkpXG5jIDwtIG1hdHJpeCgxOjEwLCBucm93PTUpXG5kIDwtIGMoXCJvbmVcIiwgXCJ0d29cIiwgXCJ0aHJlZVwiKVxuXG5teWxpc3QgPC0gbGlzdCh0aXRsZT1hICxiLGMsZClcbm15bGlzdCJ9
本例创建了一个列表,其中有四个成分:一个字符串、一个数值型向量、一个矩阵以及一个字符型向量。可以组合任意多的对象,并将它们保存为一个列表。
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJjYXJzIDwtIGxtKGZvcm11bGEgPSB3dH5tcGcsIGRhdGEgPSBtdGNhcnMpXG5zdW1tYXJ5KGNhcnMpIn0=
常用函数
length(object)
:显示对象中元素的数量
dim(object)
: 显示某个对象的维度
str(object)
:显示某个对象的结构
class(object)
: 显示某个对象的类或类型
names(object)
:显示某对象中各成分的名称
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJsZW5ndGgobXRjYXJzKVxuXG5sZW5ndGgobXRjYXJzJG1wZylcblxuZGltKG10Y2Fycylcblxuc3RyKG10Y2FycylcblxuY2xhc3MobXRjYXJzKVxuXG5uYW1lcyhtdGNhcnMpIn0=
c(object, object,...)
: 将对象合并入一个向量
cbind(object, object, ...)
: 按列合并对象
rbind(object, object, ...)
: 按行合并对象
head(object)
:列出某个对象的开始部分
tail(object)
:列出某个对象的最后部分
ls()
: 显示当前的对象列表
rm(object, object, ...)
: 删除一个或更多个对象。
rm(list = ls())
:将删除当前工作环境中的几乎所有对象4
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJjKDIsIDIwKVxuXG5jYmluZChzdHVkZW50cywgbWF0aF9zY29yZSlcblxucmJpbmQoc3R1ZGVudHMsIG1hdGhfc2NvcmUpXG5cbmhlYWQobXRjYXJzKVxuXG50YWlsKG10Y2FycylcblxubHMoKVxuXG5ybShhLCBiLCBjKVxuXG5scygpIn0=
课后练习一:
请计算半径为5的圆的面积,pi取值3.14:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIzLjE0KiIsInNvbHV0aW9uIjoiMy4xNCo1XjIifQ==
请用
<-
创建变量 my_height,并输出:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIENyZWF0ZSBhIHZhcmlhYmxlIG15X2hlaWdodCwgZXF1YWwgdG8gd2hhdGV2ZXIgeW91ciBoZWlnaHQgaXMsXG5cbiMgUHJpbnQgb3V0IG15X2hlaWdodCIsInNvbHV0aW9uIjoiIyBDcmVhdGUgYSB2YXJpYWJsZSBteV9oZWlnaHQsIGVxdWFsIHRvIHdoYXRldmVyIHlvdXIgaGVpZ2h0IGlzLFxubXlfaGVpZ2h0PC0xNzVcbiAgXG4jIFByaW50IG91dCBteV9oZWlnaHRcbm15X2hlaWdodCJ9
请以两位导师的名字创建向量my_teachers(提示,character的向量里面的元素需要用双引号):
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJteV90ZWFjaGVyczwtIiwic29sdXRpb24iOiJteV90ZWFjaGVyczwtYyhcIkNocmlzXCIsIFwiSmFzb25cIilcbm15X3RlYWNoZXJzIn0=
请把Jason 从 my_teachers里面召唤出来:
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im15X3RlYWNoZXJzPC1jKFwiQ2hyaXNcIiwgXCJKYXNvblwiKSIsInNhbXBsZSI6IiMgSmFzb246Iiwic29sdXRpb24iOiIjIEphc29uOlxubXlfdGVhY2hlcnNbMl0ifQ==
请提取矩阵 my_data 第3行第5列的元素, my_data已在后台给出:
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im15X2RhdGE8LW1hdHJpeCgxOjEwMCwgbnJvdz0xMCkiLCJzYW1wbGUiOiJteV9kYXRhIiwic29sdXRpb24iOiJteV9kYXRhWzMsIDVdIn0=
请提取矩阵 my_data 第3行第5列到8列的元素, my_data已在后台给出:
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6Im15X2RhdGE8LW1hdHJpeCgxOjEwMCwgbnJvdz0xMCkiLCJzYW1wbGUiOiJteV9kYXRhIiwic29sdXRpb24iOiJteV9kYXRhWzMsIGMoNTo4KV0ifQ==
在自己本地电脑上的RStudio Console里用
?
查看
plot()
这个函数的帮助文档,拉到最下面,赋值黏贴第一个例子,并运行:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjcGxvdCIsInNvbHV0aW9uIjoicmVxdWlyZShzdGF0cykgIyBmb3IgbG93ZXNzLCBycG9pcywgcm5vcm1cbnBsb3QoY2FycylcbmxpbmVzKGxvd2VzcyhjYXJzKSkifQ==
最后一题:
在自己电脑上建立一个文件夹R_learning, 使用setwd(“mypath”), 建立指向该文件夹的工作路径。
完结撒花~
基本作图
一图胜千言
人类非常善于从视觉呈现中洞察关系。
一幅精心绘制的图形能够帮助你在数以千计的零散信 息中做出有意义的比较,提炼出使用其他方法时不那么容易发现的模式。
R是一个惊艳的图形构建平台。在通常的交互式会话中,我们可 以通过逐条输入语句构建图形,逐渐完善图形特征,直至得到想要的效果。
plot()
是R中为对象作图的一个泛型函数(它的输出将根据所绘制对象类型的不同而变化)。
plot(x, y)
, 将x置于横轴,将y置于纵轴,绘制点集(x, y),散点图。使用help(plot)可以查看其他选项。
下面的代码打开一个图形窗口并生成了一幅散点图,横轴表 示车身重量,纵轴为每加仑汽油行驶的英里数。
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwbG90KG10Y2FycyR3dCwgbXRjYXJzJG1wZykifQ==
添加横坐标标签,添加纵坐标标签
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwbG90KG10Y2FycyR3dCwgbXRjYXJzJG1wZyxcbiAgICAgeGxhYj1cIk1pbGVzIFBlciBHYWxsb25cIixcbiAgICAgeWxhYj1cIkNhciBXZWlnaHRcIikifQ==
添加回归曲线
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwbG90KG10Y2FycyR3dCwgbXRjYXJzJG1wZyxcbiAgICAgeGxhYj1cIk1pbGVzIFBlciBHYWxsb25cIixcbiAgICAgeWxhYj1cIkNhciBXZWlnaHRcIilcbmFibGluZShsbShtdGNhcnMkbXBnfm10Y2FycyR3dCkpXG50aXRsZShcIlJlZ3Jlc3Npb24gb2YgTVBHIG9uIFdlaWdodFwiKSJ9
改变点的颜色和形状
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwbG90KG10Y2FycyR3dCwgbXRjYXJzJG1wZyxcbiAgICAgICAgIHhsYWI9XCJNaWxlcyBQZXIgR2FsbG9uXCIsXG4gICAgICAgICB5bGFiPVwiQ2FyIFdlaWdodFwiLFxuICAgICBjb2w9NCxcbiAgICAgcGNoPTE2KVxuYWJsaW5lKGxtKG10Y2FycyRtcGd+bXRjYXJzJHd0KSlcbnRpdGxlKFwiUmVncmVzc2lvbiBvZiBNUEcgb24gV2VpZ2h0XCIpIn0=
有这些形状可以选择:
总是用美元符号,是不是太麻烦?换一种方式:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJ3aXRoKG10Y2Fycyx7XG5wbG90KHd0LCBtcGcpXG5hYmxpbmUobG0obXBnfnd0KSlcbnRpdGxlKFwiUmVncmVzc2lvbiBvZiBNUEcgb24gV2VpZ2h0XCIpXG59XG4pIn0=
全局参数设定,多图同列, 例如设置2列2行, 四个直方图:

上面的图是这么实现的:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwYXIobWZyb3c9YygzLDEpKVxud2l0aChtdGNhcnMse1xuICBwYXIobWZyb3c9YygyLDIpKVxuICBoaXN0KHd0KVxuICBoaXN0KG1wZylcbiAgaGlzdChkaXNwKVxuICBoaXN0KGhwKVxufSkifQ==
箱线图:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJib3hwbG90KG10Y2FycyRtcGcpIn0=
保存图形:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwZGYoXCJteWdyYXBoLnBkZlwiKVxuICAgICAgYXR0YWNoKG10Y2FycylcbiAgICAgIHBsb3Qod3QsIG1wZylcbiAgICAgIGFibGluZShsbShtcGd+d3QpKVxuICAgICAgdGl0bGUoXCJSZWdyZXNzaW9uIG9mIE1QRyBvbiBXZWlnaHRcIilcbiAgICAgIGRldGFjaChtdGNhcnMpXG5kZXYub2ZmKCkifQ==
除了pdf(),还可以使用函数win.metafile()、png()、jpeg()、bmp()等将图形保存为其他格式。
- 通过图形用户界面保存图形,在RStudio的右下角,“Export”即可。
课后练习二:
请使用
str()
,
names()
函数来观察
airquality
这个数据的变量:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJzdHIoKSIsInNvbHV0aW9uIjoic3RyKGFpcnF1YWxpdHkpXG5uYW1lcyhhaXJxdWFsaXR5KSJ9
用
summary
来计算
airquality
数据里所有变量各自的平均值,最小值,最大值:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIGNob29zZSBhbnkgZnVuY3Rpb25zIHlvdSBsaWtlOiIsInNvbHV0aW9uIjoic3VtbWFyeShhaXJxdWFsaXR5KSJ9
请用
plot()
函数创建风速与风度的散点图:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwbG90KCkiLCJzb2x1dGlvbiI6IndpdGgoYWlycXVhbGl0eSx7XG4gICAgICAgcGxvdCh4PVdpbmQsIHk9VGVtcCxcbiAgICAgICAgICAgIHhsYWI9XCJ3aW5kIHNwZWVkXCIsXG4gICAgICAgICAgICB5bGFiID0gXCJUZW1wZXJhdHVyZVwiKVxuICAgIH0pIn0=
请在上图的基础上,添加回归曲线和标题“Weather in NYC”:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIGluIGFkZGl0aW9uLCB5b3UgbWF5IHRyeSB0byBpbXBsZW1lbnQgd2l0aCBmdW5jdGlvbjoiLCJzb2x1dGlvbiI6IndpdGgoYWlycXVhbGl0eSx7XG4gICAgICAgcGxvdCh4PVdpbmQsIHk9VGVtcCxcbiAgICAgICAgICAgIHhsYWI9XCJ3aW5kIHNwZWVkXCIsXG4gICAgICAgICAgICB5bGFiID0gXCJUZW1wZXJhdHVyZVwiKVxuICBhYmxpbmUobG0oV2luZH5UZW1wKSlcbiAgdGl0bGUoXCJXZWF0aGVyIGluIE5ZQ1wiKVxuICAgIH0pIn0=
最后一题,请使用pdf("mygraph.pdf")
和 pdf("mygraph.pdf")
将上面的图形保存到你的作业文件夹(本地硬盘)。
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJ3aXRoKGFpcnF1YWxpdHkse1xuICAgICAgIHBsb3QoeD1XaW5kLCB5PVRlbXAsXG4gICAgICAgICAgICB4bGFiPVwid2luZCBzcGVlZFwiLFxuICAgICAgICAgICAgeWxhYiA9IFwiVGVtcGVyYXR1cmVcIilcbiAgYWJsaW5lKGxtKFdpbmR+VGVtcCkpXG4gIHRpdGxlKFwiV2VhdGhlciBpbiBOWUNcIilcbiAgICB9KSJ9