R语言入门 一些基本的操作
R有很多的版本,支持目前主流的操作系统MAC、Linux和WINDOWS系列。因为我个人是在WINDOWS下用R的,所以在这里将只介绍WINDOWS下R的下载&安装。
下载R:
你可以从世界各地很多网站上下载到R,官方的中国下载点是:
http://www.lmbe.seu.edu.cn/CRAN/bin/windows/base/
在我写这篇文章的时候,最新的版本是R-2.2.1版。
在网络上有一篇被翻译过来的R入门教材,可以在这里找到 :R 導論(入門)
安装R:
1,双击R-2.2.1-win32.exe文件,进入安装画面。
2,在Welcome to the R for Windows Setup Wizard的画面中,单击NEXT。
3,在License Agreement的画面中,选择[I accept the agreement],然后单击NEXT。
4,在Select Destination Location的画面中,可以自行设定安装目录,默认为:[C:\Program Files\R\R-2.2.1],单击NEXT。
5,在接下来的过程中一律选则NEXT安装即可。
2 简单的数学计算、数学函数以及如何编辑R程序
1,用R进行简单的计算:
我们可以用R进行以下各类运算。
加法 +
减法 -
乘法 *
除法 /
幂运算 ^
整数商 %/%
余数 %%
例如:
输入: (1 + 2 - 3 * 4) / 5^6
结果: [1] -0.000576
2,R中还有很多的数学函数可以使用,比如说开方函数、对数函数等等。
例如:
输入: sqrt(2)
结果:[1] 1.414213
你还可以使用多个函数进行计算。例如:
输入: sqrt(100) + round(100) / log10(100)
结果:[1] 60 下面介绍的是R中可以使用的数学函数。
sqrt : 开平方函数
abs : 绝对值函数
exp : 2.71828…
expm1 : 当x的绝对值比1小很多的时候,它将能更加正确的计算exp(x)-1
log : 对数函数
log10 : 对数(底为10)函数
log2 : 对数(底为2)函数
sin : 正弦函数
cos : 余弦函数
tan : 正切函数
asin : 反正弦函数
acos : 反余弦函数
atan : 反正切函数
sinh : 超越正弦函数
cosh : 超越余弦函数
tanh : 超越正切函数
asinh : 反超越正弦函数
acosh : 反超越余弦函数
atanh : 反超越正切函数
logb : 和log函数一样
log1px : 当x的绝对值比1小很多的时候,它将能更加正确的计算log(1+x)
gamma : Γ函数(伽玛函数)
lgamma : 等同于log(gamma(x))
ceiling : 返回大于或等于所给数字表达式的最小整数
floor : 返回小于或等于所 给数字表达式的最大整数
trunc : 截取整数部分
round : 四舍五入
signif(x,a) : 数据截取函数 x:有效位 a:到a位为止
3,R程序的输入/编辑
你可以直接在R的环境里输入R命令执行计算,也可以用任何一款文本编辑器进行编程。R程序的默认文件名后缀是[ .R ]。
4,环境设置函数options()
用options()命令可以设置一些环境变量。
比如说:
options(digits=10)
这个命令,可以把R的整数表示能力设为10位。
options(warn=-1)
这个命令,可以忽视任何警告。(warn=1时,为不放过任何警告)
……
使用help(options)可以查看详细的参数信息。
RWEKA:
WEKA是一个JAVA写的数据挖掘的工具,RWEKA则是在R中调用WEKA的一个界面。
扩展包说明&下载地址(英文):http://cran.r-project.org/src/contrib/Descriptions/RWeka.html
3、R的数据类型
R中包含以下的基本数据类型。
空值(NULL)
意义 :该对象里什么都没有(甚至连0也没有)
欠损值、不定值(NA),非数(NaN),无限大(Inf)
意义 :NA:表示数据缺损;NaN:表示用数字无法表示;Inf:无限大
复数(complex)
意义 :复数
字符串(character)
意义 :不是单一的字符,而是用双/单引号括起来的字符
逻辑值(logical)
意义 :T表示真,F表示假
4_关于R的一些基本知识
首先看一下这一次要讲的内容。
在用R进行数据分析和计算的时候,将会用到很多变量、函数、数组等等。而对象则是对所有这些变量、函数、数组等的总称。比如说,下面这个式子:x <- 2通常我们会说,x是一个变量,我们通过赋值运算把它的值设为2。但是在R里,不论我们是给一个变量赋值也好,还是对一个数组进行初始化也好,我们统统把它称为[对象]。
什么是对象(Object)
如何改变工作目录
关于扩展包(库函数)
R的数据类型
环境设置函数options()
接下来,我们一个一个的简单介绍。
1,什么是对象(Object)
在用R进行数据分析和计算的时候,将会用到很多变量、函数、数组等等。而对象则是对所有这些变量、函数、数组等的总称。
比如说,下面这个式子:
x <- 2
下面的对象是R的预设对象。我们在命名自己的对象时,是不能与下面这些对象重名的。
break
else
for
function
if
TRUE
in
next
repeat
return
while
FALSE
另外:
使用objects()函数,还可以查看目前存在的对象名。
使用rm()函数,可以消除自己所定义过的对象。( 例如: rm(killme) )
使用rm(list=ls(all=TRUE))命令,可以消除自己所定义过的所有的对象。
命名对象时,要注意大小写。(例如:x和X是两个不同的对象)
2、如何改变工作目录
你可以用getwd()命令来查看当前目录,也可以用类似setwd(”c:/usr”)的命令来更改当前的目录。
你还可以用dir()命令来查看当前目录里的文件。(好像回到了dos时代…呵呵)
3、关于扩展包(库函数)
R有很好的扩展性能,默认下R自带了以下的扩展包。
base:R的基本扩展包
boot:R的启动函数库
class:Classification的函数库
cluster:进行聚类分析计算的函数库
foreign:读取其它的统计软件(如:SAS…)等生成的文件的函数库
grid:grid图像函数库
KernSmooth:进行核函数密度估计运算的函数库
lattice:lattice图像函数库
MASS:在『Modern Applied Statistics with S』中出现的数据与函数库
methods:定义了在R中用于对象的各种方法、类、程序以及工具。
mgcv:GCV和一般加法模型GAM(generalized additive model)的函数库
nlme:线性混合效果模型和非线性混合效果模型的函数库
nnet:
rpart:使用了再归算法的分类和回归树的函数库
spatial:
splines:splines回归的函数库
stats:R的统计函数库
stats4:S4类的统计函数库
survival:
tcltk:Tcl/Tk的接口函数库
tools:用于扩展包开发和管理的函数库
utils:
另外:
使用library(help=”扩展包名”)命令可以查看该扩展包的详细信息
使用library(扩展包名)命令可以使用该扩展包
使用search()命令可以查看现在已经读取的扩展包
使用detach(”package:扩展包名”)命令可以卸载某个扩展包
使用data()命令可以查看当前可使用的数据对象
使用data(package = “扩展包名”)命令可以查看在该扩展包中的数据对象
扩展包的安装:
使用下面的命令,可以联网安装扩展包。
options(CRAN=”http://cran.r-project.org”)
install.packages(”扩展包名”)
如果你已经下载了扩展包的ZIP压缩文件,你可以用下面的命令指定路径安装扩展包。
install.packages(”路径名/文件名.zip”, contriburl = NULL)
例如:install.packages(”c:/adapt_1.0-4.zip”, contriburl = NULL)
当然,你也可以通过菜单操作下载和安装扩展包,请自己研究。
5_用R进行基本的统计计算
今天简单的讲一下如何用R进行基本的统计计算。
定义:
数据有很多种分类方法,在这里,为了方便理解,暂时把年龄、身高、体重等用数字表示的数据叫做数量型数据;相对的,把血型、性别、职称等用文字叙述的数据叫做质量型数据。
在这里所说的基本的统计计算,是指对各类数量型数据进行求和、平均、求最大值最小值等等的计算。
●和与百分比
A:和
在对数量型数据进行分析计算时,求和是经常会使用到的。
比如说,有五位同学,他们的身高分别是:
1.75米 、 1.82米 、 1.78米 、 1.93米 、 1.77米
求他们的身高的总和。
和 = 1.75+1.82+1.78+1.93+1.77 = 9.05米
用R进行求和计算时,你可以按照下面的方式进行计算
> 1.75+1.82+1.78+1.93+1.77
[1] 9.05
也可以利用R本身的sum()函数,这样的话,会更加便捷。
> shengao <- c(1.75,1.82,1.78,1.93,1.77)
> sum(shengao)
[1] 9.05
B:百分比
还是刚才那5位同学,他们的体重分别是:
69公斤 , 80公斤 , 78公斤 , 96公斤 , 65公斤
他们的总体重为:
Java代码
- > tizhong <- c(69,80,78,96,65)
- > sum(tizhong)
- [1] 388
> tizhong <- c(69,80,78,96,65)> sum(tizhong)[1] 388
388公斤。
那么,第一位同学占总体重的多少呢?
按比例计算:
Java代码
- > tizhong/sum(tizhong)
- [1] 0.1778351
0.2061856
0.2010309
0.2474227
0.1675258
> tizhong/sum(tizhong)[1] 0.1778351 0.2061856 0.2010309 0.2474227 0.1675258
按百分比计算:
Java代码
- > 100*(tizhong/sum(tizhong))
- [1] 17.78351
20.61856
20.10309
24.74227
16.75258
> 100*(tizhong/sum(tizhong))[1] 17.78351 20.61856 20.10309 24.74227 16.75258
使用扩展包sca中的percent函数,可以用带%符号的表示方式显示结果。
Java代码
- > library(sca)
- > percent(tizhong/sum(tizhong))
- [1] “18 %” “21 %” “20 %” “25 %” “17 %”
> library(sca)> percent(tizhong/sum(tizhong))[1] “18 %” “21 %” “20 %” “25 %” “17 %”
还可以用参数d来指定小数点后的表示位数。在不指定的情况下,小数点后的数字不表示。
Java代码
- > percent(tizhong/sum(tizhong),d=1)
- [1] “17.8 %” “20.6 %” “20.1 %” “24.7 %” “16.8 %”
> percent(tizhong/sum(tizhong),d=1)[1] “17.8 %” “20.6 %” “20.1 %” “24.7 %” “16.8 %”
如果不想结果被双引号包围,可以用noquote命令
Java代码
- > noquote(percent(tizhong/sum(tizhong),d=1))
- [1] 17.8 % 20.6 % 20.1 % 24.7 % 16.8 %
> noquote(percent(tizhong/sum(tizhong),d=1))[1] 17.8 % 20.6 % 20.1 % 24.7 % 16.8 %
●表示中心的统计量
表示数据中心位置的统计量有很多种,最基本的有:平均值、最频值。
A:平均值
上面那五位同学的年龄分别为:
19岁 、 21岁 、 20岁 、 26岁 、 17岁
在求这五位同学的年龄的平均值时,可以用下面这种方法:
Java代码
- > (19+21+20+26+17)/5
- [1] 20.6
> (19+21+20+26+17)/5[1] 20.6
也可以用R自带的mean()函数:
Java代码
- > nianling <- c(19,21,20,26,17)
- > mean(nianling)
- [1] 20.6
> nianling <- c(19,21,20,26,17)> mean(nianling)[1] 20.6
B:最频值
在数据中最频繁出现的数值叫做最频值。
我们先用其他的函数来间接的求最频值。
例如:我们在求下面这组数据的最频值时,可以使用table函数。
Java代码
- 1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4
- > table(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4))
- 1
3
4
5
7
8
9
23 - 1
2
1
1
3
1
1
1
1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4> table(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4)) 1 3 4 5 7 8 9 23 1 2 1 1 3 1 1 1
从返回的结果中我们可以清楚地看到,在数据中 “7” 出现了3次,因此 “7” 为该组数据的最频值。
接着,我们直接用函数median()来求最频值。
Java代码
- > median(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4))
- [1] 7
> median(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4))[1] 7
●表示分散的统计量
表示数据中心的统计量虽然很重要,但是表示数据四周的分散信息的统计量也十分的重要。
A:最大值、最小值和范围
我们用tizhong数据,分别计算五位同学体重的最大值、最小值和体重的分布范围。
最大值
Java代码
- > max(tizhong)
- [/1] 96
- <PRE class=java name="code">最小值
- <PRE class=java name="code">> min(tizhong)
- [1] 65
- </PRE>
- <BR>范围
- <BR><PRE class=java name="code">> range(tizhong)
- [1] 65
96 - </PRE>
- <BR>
- <BR>B:方差和标准偏差(variance AND standard deviation)
- <BR>
- <BR>在R中,有很方便的求方差和标准偏差的函数var()和sd()。
- <BR>
- <BR>例如在求tizhong数据的方差和标准偏差时,可以如下计算。
- <BR>方差:
- <BR><PRE class=java name="code">> var(tizhong)
- [1] 144.3
- </PRE>
- <BR>标准偏差:
- <BR><PRE class=java name="code">> sd(tizhong)
- [1] 12.01249
- </PRE>
- <BR>C:四分位数
- <BR>
- <BR>四分位数是指把样本数据按从小到大的顺序等分成四份,各等分点上的数即为四分位数。
- <BR>例如:数据
- <BR>
- <BR>3(0%点) 5
6(25%点) 8
9(50%点) 11
12(75%点) 15
16(100%点) - <BR>
- <BR>25%点的6和75点的12分别称为下四分位数和上四分位数。
- <BR>
- <BR>上四分位数与下四分数之差叫做四分位间距。
- <BR>
- <BR>在R中我们可以用quantile()函数和IQR()函数来求四分位数和四分位间距。
- <BR><PRE class=java name="code">> sifenshu <- c(3,5,6,8,9,11,12,15,16)
- > quantile(sifenshu)
- 0% 25% 50% 75% 100%
- 3
6
9
12
16 - > IQR(sifenshu)
- [1] 6
- </PRE>
- <BR>
- <BR>今天简单介绍了一下如何用R对一些基本的统计量进行计算,如果有其它的要求的,欢迎提出来,我会进一步介绍的。今天就先到这里了,呵呵。
- <BR>
- <BR>
- <BR>6_R的函数
- <BR>
- <BR>R中有很多的标准自带的函数,也有很多的由扩展包支持的函数。今天我们主要看一看R中标准自带的函数。
- <BR>
- <BR>首先简单定义一下什么是函数:
- <BR>
- <BR>在R中,所谓函数实际上就是一系列程序的组合。
- <BR>
- <BR>为了能够更深刻的理解这句话,我将在下面这个例子中先一步一步的计算几个数的平均值;再讲如何把这些可以重复利用的运算步骤改写成为自己服务的函数;最后,我们再看一下R中已经为我们准备好了的求平均值的函数的用法:
- <BR>
- <BR><PRE class=java name="code">1,一段程序
- 我们用R计算下面这5个数的和
- 23
34
56
78
89 - 在R中,我们刚开始可能会这样写:
- >x <- c( 23, 34, 56, 78, 89 )
- >z <- 0
- >for( i in 1:5 ){
- >z <- z + x
- >}
- >z <- z/5
- >z
- [1]56
R语言入门 一些基本的操作的更多相关文章
- 用几分钟了解R语言入门知识
第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)
- R语言入门1:安装R和RStudio
R语言入门1:安装R和RStudio 曹务强 中科院遗传学博士研究生 9 人赞同了该文章 1. Windows安装R 在Windows系统上,安装R语言比较简单,直接从R的官方网站下载,按照正常的软件 ...
- 【Introduction】R语言入门关键小结
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- r语言入门资料
最近有好多r语言的爱好者问我r语言的事情,在百度上简单的收一收,感觉都在扯淡,真正适合初学者入门的资料几乎没有,比如最开始用什么编辑器比较好,在哪下载,最开始学习的例子有什么? 在日本网站上反倒是找 ...
- R语言入门 :基本数据结构
1.向量 向量是R语言中最基本的数据类型,在R语言中没有单独的变量. (1) 创建向量 R语言中可以用 = 或者 <- 来赋值. 向量名 <- 向量 或 向量名 = 向量 向量的创建方 ...
- 《R语言入门》语言及环境简单介绍
简单介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...
- R语言入门 (有其他编程语言基础)
慢慢才意识到概率统计的重要性,当时学的时候只知道很重要,是机器学习基础啥的,但是却没有真正意识到( ╯□╰ ).我现在的理解是,统计学习可以从大数据中挖掘出规律(其实和数据挖掘还是很相关的),在科研工 ...
- R语言入门二
一.R语言应知常用函数 1.getwd() 函数:获取工作目录(同eclipse设置workspace类似),直接在R软件中使用,如下图: 2.setwd(dir=”工作目录”) 函数:设置R软件RS ...
- 【R语言入门】R语言中的变量与基本数据类型
说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...
随机推荐
- 在c/c++中浮点数是否为0的判断
在c/c++中,因为浮点数在内存中的表示是不精确的,会有很微小的误差,所以判断是否为0,就看它的绝对值是不是<=eps. eps可以看成是epsilon的缩写,可以用来表示一个无穷小的量,通常取 ...
- 2.2 Apache Axis2 快速学习手册之 AXIOM 构建 Web Service
和上一篇的POJO 部署相比主要是services.xml 中配置的消息接受处理器类不一样和Java 类中写法不一样. 使用AXIOM构建服务 样例源码路径: C:\Apps\axis2\axis2- ...
- 【iOS XMPP】使用XMPPFramewok(五):好友列表
转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/17/3082226.html 好友列表 好友列表,在 XMPP 中被称为 roster,花名 ...
- Stochastic Gradient Descent收敛判断及收敛速度的控制
要判断Stochastic Gradient Descent是否收敛,可以像Batch Gradient Descent一样打印出iteration的次数和Cost的函数关系图,然后判断曲线是否呈现下 ...
- C++标准库及其保留字(关键字)——附:C++标准文档
引言 C++到目前共发布了4个国际标准:ISO/IEC 14882:1998.ISO/IEC 14882:2003.ISO/IEC 14882:2011.ISO/IEC 14882:20 ...
- vue2.0的contextmenu右键菜单
1.事情对象 <!DOCTYPE html> <html> <head> <title></title> <meta charset= ...
- 分析jvm线程堆栈
目录 一.java线程状态 二.使用jstack生成进程dump文件 三.统计dump文件中处于不同状态的线程数量 四.举例分析不同状态的线程 1.分析BLOCKED (on object monit ...
- H3C交换机配置的备份与恢复(TFTP方法)
局域网维护中,有时候我们需要对网络设备的配置进行备份与还原. 相信有很多网管员备份配置都是采用display current命令查询当前设备运行配置信息,然后采用ctrl+c,ctrl+v的方式将信息 ...
- Zabbix之Python发送邮件
前言:继前篇zabbix邮件乱码问题解决,转码后,问题是解决了,但是又发现问题,有时候告警邮件没有邮件内容,只有标题,一直没找出原因,所以就换了Python脚本发送邮件,代码如下. 使用前当然是要先安 ...
- C++中虚函数的作用是什么?它应该怎么用呢?
虚函数联系到多态,多态联系到继承.所以本文中都是在继承层次上做文章.没了继承,什么都没得谈. 下面是对C++的虚函数这玩意儿的理解. 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你 ...