• R语言入门 一些基本的操作


    1 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 FilesRR-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
     
     
  • 相关阅读:
    代码间距的由来和解决方法
    径向渐变
    倒计时原理
    javascript原型模式理解
    倒计时原理和折叠收缩
    highcharts注意事项
    jsp注释前台不可见
    启动Tomcat任何程序都报错
    面试题
    eclipse不自动弹出提示(alt+/快捷键失效)
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/6668286.html
Copyright © 2020-2023  润新知