界面熟悉和基本操作
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==
完结撒花!