精华内容
下载资源
问答
  • 欢迎关注小号:医学统计数据分析,今天我们来介绍一下医学统计学常用统计学方法的R语言基本操作。 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计...

    129c43ddf110559a1ec28fb0a8f7d99a.gif

           大家好!欢迎关注小号:医学统计数据分析,今天我们来介绍一下医学统计学中常用统计学方法的R语言基本操作。

           R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

    f271f25cc0a35a1cd46257dd088bfb38.png

          我们先下载R与Rstudio的安装包,先安装R,再安装Rstudio。RStudio是一款R语言的集成开发环境(IDE),R自带的环境操作起来可能不是方便,而Rstudio很好地解决了这个问题,RStudio只是辅助你使用R进行编辑的工具,因为它自身并不附带R程序。

    R下载地址(官网):

    https://cran.r-project.org/bin/windows/base/

    Rstudio(官网):

    https://rstudio.com/

    655f70f3d51476247504e58ecfb62651.png

           打开RStudio之后,会出现上图所示的窗口,其中有四个独立的面板。RStudio界面分为左上角的源码编辑、脚本显示,左下角的代码执行、控制台,右上角的代码历史记录、数据对象列表,右下角的代码组织管理、包安装、更新、绘图。

    一、R导入Excel数据

           我们先把需要分析的Excel表格另存为.csv格式,使用

    1b6650d49644f470c88885034fadf16b.png

    数据读取后,在脚本显示窗口可见数据预览:

    eeec0041b9ef3c52e425f4bf2b4829ee.png

    使用summary()语句,对导入的数据大致分布做一下基本了解:

    ed2dd9982807c0970324bcde02de0b81.png

    二、单因素(方差分析与卡方检验)

    使用 anova

            summary(anova) 语句,可得方差分析结果:DF/SS/MS/F值/P值

    1f96f2ae53d72d00f9a1dc2dd7022484.png

    使用plot(分组因素,研究因素)语句,可画出三组比较的箱形图:

    9fba6c01442d3aeb4aeb02d5326bbda1.png

    使用chisq.test(分组因素,研究因素)做卡方检验,可见下图输出:

    3414e06857a84bc31b5ea3153b3c4d90.png

    三、相关与回归

            使用cor.test(testdata$1,testdata$2)语句做相关性分析,使用plot(因素1,因素2)语句画出散点图。

    c622b470b53f9e70a8946dc59148f2b0.png

    82eab3f45f27062eb1bb7d91dad1ee3e.png

    使用> lm(Y~X+1)语句及> summary(lm(Y~X+1))语句得到一元线性回归的B值、R2、残差分析等结果。

    1bc1ed5c79fa2b659835040cd5078514.png

    9e6f84186b2f63fc07264b95f1d9cb38.png

    四、时间序列图等

    根据整理好的时间序列资料,使用plot()语句,即可直接画出时间序列图(散点):

    58bc8aa24c560d2dbb5dd2dae48eded3.png

    安装包:

    install.packages("zoo")

    install.packages("xts")

    载入包:

    library(zoo)

    library(xts)

    计算与画图:

     ts

    plot(ts)

    xts可画出线图:

    75654de9c851e4c30923d53d8e79b0ba.png

    同样,我们也可以画出五日平均线等平滑曲线:

    c1ca483013548ac663dc98dba394992b.png

    欢迎关注小号:医学统计数据分析,您的支持是我们进步最大的动力!

    b6a124bc04481f48494b360567dcadeb.png

    展开全文
  • 讨论各种数据建模,结合详尽的案例分析,有code,适合初学者自学
  • R语言:大数据分析统计方法及应用,大数据分析,R语言精品资料
  • R 语言统计分析

    2016-03-08 15:40:10
    R语言,编程分析,以及运用R语言进行统计分析
  • R语言统计分析

    热门讨论 2011-10-15 22:26:52
    R语言应用统计分析,对于生物统计有所帮助
  • 学习r语言基础用书 pdf R是一套由数据操作、计算和图形展示功能整合而成的套件。包括: • 有效的数据存储和处理功能, • 一套完整的数组(特别是矩阵)计算操作符, • 拥有完整体系的数据分析工具, • 为数据...
  • R语言统计分析》以数据的常用统计分析方法为基础,简明扼要地阐述统计学基本概念、基本思想与基本方法的基础上,讲述与之相对应的R函数的实现,并通过具体的例子说明统计问题求解的过程。《R语言统计分析》...
  • 数据挖掘统计学习方法常常用到R语言,因此,我们后面将对R语言在统计学习应用进行专题介绍,方便从理论上对统计学习有进一步深入的认识。

    在数据挖掘中,统计学习方法常常用到R语言,因此,我们后面将对R语言在统计学习中的应用进行专题介绍,方便从理论上对统计学习有进一步深入的认识。

    1初始步骤

    开始运营R很简单,一种可以从系统菜单启动,双击图标或在系统命令行中输入命令”R“。这将产生一个控制台窗口,或在当前终端窗口启动一个交互式程序。在这两种情况下,R都是通过问答模式工作,即输入命令行并按下Enter键,然后程序运行,输出相关结果,继续要求更多输入。当R在准备输入状态时,它显示的提示符石“>”符号。

    1.1大型计算器

    R中最简单的任务可能就是输入一个算数表达式并得到结果。
    eg:

    2+2
    [1] 4
    exp(-2)
    [1] 0.1353353
    rnorm(15)
    [1] 2.03314449 -1.94219751 0.02376473 0.79630659 -0.01148198 1.05401025
    [7] 1.72357438 -1.30536388 -0.57136489 -2.27014811 -1.43595185 0.33359974
    [13] 1.33672836 0.33639512 0.16830860

    结果前面的[1]石R输出数字和向量的方式的一部分。括号中的数字时那一行第一个数字的序号。

    1.2赋值

    在R中变量可以自由选取,它可以有字母,数字和点号构成。然而,有一个限制是不能以数字开头,数字后也不能紧跟点号。
    有些变量名已被系统使用,因此最好避免使用,如c、q、t、C、D、F、I和T,也有其他如diff、df和pt等。
    <-为赋值符号,两个符号间无空格。
    eg:

    x<-2
    x
    [1] 2
    x+x
    [1] 4

    1.3向量运算

    结构c(…)用来构造向量。下面举例计算一组身高的BMI,并求变量的均值和标准差。

    weight<-c(60, 72, 57, 90, 95, 72)
    height<-c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91)
    bmi<-weight/height^2
    bmi
    [1] 19.59184 22.22222 20.93664 24.93075 31.37799 19.73630
    xbar<-sum(weight)/length(weight)
    sqrt(sum((weight-xbar)^2)/(length(weight)-1))
    [1] 15.42293
    mean(weight)
    [1] 74.33333
    sd(weight)
    [1] 15.42293

    1.4作图

    plot(height, weight)
    hh<-c(1.65, 1.70, 1.75, 1.80, 1.85, 1.90)
    plot(height, weight, lines(hh, 22.5*hh^2), pch=2)

    这里写图片描述

    2 R语言基础

    2.1 表达式和对象

    R的一个基本交互模式时表达式求值。用户输入一个表达式,系统计算它并输出结果。
    表达式通常包含变量引用、运算符、函数调用及其他。
    表达式作用于对象。对象时一个抽象的术语,可以正对任何可以给变量赋值的事物。

    2.2 函数和参数

    一个函数的形式参数可以通过如下方式看到,eg:

    >args(plot.default)
    function (x, y = NULL, type = “p”, xlim = NULL, ylim = NULL,
    log = “”, main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
    ann = par(“ann”), axes = TRUE, frame.plot = axes, panel.first = NULL,
    panel.last = NULL, asp = NA, …)
    NULL
    很多函数的参数都有默认值,在不赋值的情况下系统自动选择默认值。

    2.3 向量

    数值向量c(…)
    字符向量c(“ ”,“ ”…),也可用单引号。
    逻辑向量c(T,F ….)

    c(“huey”, “dewey”, “essy”)
    [1] “huey” “dewey” “essy”
    c(T, F, F, T)
    [1] TRUE FALSE FALSE TRUE
    bmi>25
    [1] FALSE FALSE FALSE FALSE TRUE FALSE

    2.4 引用和转义序列

    要输出一个不带引号的字符串,需要使用cat函数。

    cat(c(‘huey’, ‘dewey’, ‘louie’))
    huey dewey louie

    反斜杠\被称为转移字符,可以用\”方式插入引用字符。
    eg:

    cat(‘what is \”R”?’)
    what is “R”?

    2.5 缺失值

    在实际数据分析中,数据点很多时候是无法得到的,R允许向量包含特殊的NA值。这个值在计算中可以执行,从而对NA的操作也产生NA作为结果。

    2.6 生成向量的函数

    2.6.1 c它时“concatenate”的简写,含义是把各分项首位连接。如果连接不同类型的向量,它们将被转化为最少“限制”的类型。

    x<-c(red=’huey’, blue=’dewey’, green=’louie’)
    x
    red blue green
    “huey” “dewey” “louie”
    names(x)
    [1] “red” “blue” “green”
    c(FALSE, 3)
    [1] 0 3
    c(pi, “abc”)
    [1] “3.14159265358979” “abc”

    2.6.2 seq(‘sequence’),用来建立数字等差序列。

    seq(4, 9)
    [1] 4 5 6 7 8 9
    4:9
    [1] 4 5 6 7 8 9
    seq(4, 8,2)
    [1] 4 6 8

    步长为1的情形特殊写法,如4:9。

    2.6.3 rep(‘replicate’)用来产生重复值。使用时有两个参数,依赖于第二个参数是一个向量还是一个数字,产生的结果会有不同:

    cops<-c(7, 9,13)
    rep(cops, 3)
    [1] 7 9 13 7 9 13 7 9 13
    rep(cops, 1:3)
    [1] 7 9 9 13 13 13
    rep(1:2, c(10,15))
    [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
    rep(1:2, each=10)
    [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2

    2.7 矩阵和数组

    在R中,‘矩阵’被拓展成仁义类型的元素,所以,可以建立一个字符串矩阵。

    x<-1:12
    dim(x)<-c(3,4)
    x
    [,1] [,2] [,3] [,4]
    [1,] 1 4 7 10
    [2,] 2 5 8 11
    [3,] 3 6 9 12
    dim函数设置或更改x的维度,使R将一个12个数字的向量作为一个3*4矩阵处理。
    创建矩阵的一个更好的方法是使用matrix函数:

    matrix(1:12, nrow=3, byrow=T)
    [,1] [,2] [,3] [,4]
    [1,] 1 2 3 4
    [2,] 5 6 7 8
    [3,] 9 10 11 12
    byrow=T将矩阵改变成按行而不是列的形式填充。
    对矩阵进行操作有用的函数包括rownames、colnames、转置函数t。

    x<-matrix(1:12, nrow=3, byrow=T)
    rownames(x)<-LETTERS[1:3]
    x
    [,1] [,2] [,3] [,4]
    A 1 2 3 4
    B 5 6 7 8
    C 9 10 11 12
    t(x)
    A B C
    [1,] 1 5 9
    [2,] 2 6 10
    [3,] 3 7 11
    [4,] 4 8 12
    LETTERS是一个包含大写字母A-Z的内置变量。其他有用的相似变量有,letters,month.name,month.bb

    x<-letters[1:3]
    x
    [1] “a” “b” “c”
    x<-cat(letters[1:3])
    a b c
    x<-month.abb[1:3]
    x
    [1] “Jan” “Feb” “Mar”

    可以按列或按行分别使用cbind和rbind函数将向量“粘”在一起。

    cbind(A=1:4, B=5:8, C=9:12)
    A B C
    [1,] 1 5 9
    [2,] 2 6 10
    [3,] 3 7 11
    [4,] 4 8 12
    rbind(A=1:4, B=5:8, C=9:12)
    [,1] [,2] [,3] [,4]
    A 1 2 3 4
    B 5 6 7 8
    C 9 10 11 12

    2.8 因子

    在R中,分类变量被指定为因子。
    术语说一个因子有一系列水平——比如说4个水平。一个四水因子包含两项含义:(1)1到4之间整数的一个向量;(2)一个长度为4的包含字符串的特征向量。

    pain<-c(0, 3, 2, 2, 1)
    fpain<-factor(pain, level=0:3)
    levels(fpain)<-c(‘none’, ‘mild’, ‘medium’, ‘severe’)
    fpain
    [1] none severe medium medium mild
    Levels: none mild medium severe
    as.numeric(fpain)
    [1] 1 4 3 3 2
    levels(fpain)
    [1] “none” “mild” “medium” “severe”

    函数as.numeric提取数字编码为1~4,levels提取水平的名称。注意数字0~3的原始输入编码不显示了,因为一个因子的内置表达方式始终是从1开始的数字。

    2.9 列表

    把一系列对象组合成一个复合对象有时候是很有用的。这可以通过list函数实现。

    intake.pre<-c(5260, 5470, 5640, 6180, 6390, 6515, 6805, 7515, 7515, 8230, 8770)
    intake.post<-c(3910, 4220, 3885, 5160, 5645, 4680, 5265, 5975, 6790, 6900, 7355)
    mylist<-list(before=intake.pre, after=intake.post)
    mylist
    $before
    [1] 5260 5470 5640 6180 6390 6515 6805 7515 7515 8230 8770

    $after
    [1] 3910 4220 3885 5160 5645 4680 5265 5975 6790 6900 7355

    mylist$before
    [1] 5260 5470 5640 6180 6390 6515 6805 7515 7515 8230 8770

    2.10 数据框

    数据框被称作“数据矩阵”或“数据集”。它时一系列等长度的向量和/或因子,它们交叉相关,使得同一位置的数据来自同一试验单元。除此之外,它具有唯一的一组行名称。

    d<-data.frame(intake.pre, intake.post)
    d
    intake.pre intake.post
    1 5260 3910
    2 5470 4220
    3 5640 3885
    4 6180 5160
    5 6390 5645
    6 6515 4680
    7 6805 5265
    8 7515 5975
    9 7515 6790
    10 8230 6900
    11 8770 7355

    2.11 索引

    如果需要向量中的一个具体元素,使用方括号来选择数据,称为索引货子集选择。

    intake.pre[5]
    [1] 6390
    intake.pre[c(3, 5, 8)]
    [1] 5640 6390 7515
    intake.pre[-c(3,5,8)]
    [1] 5260 5470 6180 6515 6805 7515 8230 8770
    注意使用c(…)构造定义包含数字3、5、8的向量是必要的。R一个巧妙的功能是可以使用负索引。

    2.12 条件选择

    实际中需要提取满足某种标准的数据,可以通过插入一个关系表达式来得到。

    intake.post[intake.pre>7000]
    [1] 5975 6790 6900 7355

    比较操作符有,<、>、==、>=、<=、!=。逻辑运算符&(和),|(或),!(不是)。
    is.na(x)用来寻找x中哪些元素被记录成缺失(NA)。

    2.13 数据框的索引

    从数据框中提取向量:

    d$intake.pre
    [1] 5260 5470 5640 6180 6390 6515 6805 7515 7515 8230 8770
    另一种方法是直接使用类似矩阵的结构:

    d<-data.frame(intake.pre,intake.post)
    d[5,1]
    [1] 6390
    d[5,]
    intake.pre intake.post
    5 6390 5645
    d[d intake.pre>7000,]intake.preintake.post87515597597515679010823069001187707355sel<d intake.pre>7000
    sel
    [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE
    d[sel,]
    intake.pre intake.post
    8 7515 5975
    9 7515 6790
    10 8230 6900
    11 8770 7355
    head(d)
    intake.pre intake.post
    1 5260 3910
    2 5470 4220
    3 5640 3885
    4 6180 5160
    5 6390 5645
    6 6515 4680
    tail(d)
    intake.pre intake.post
    6 6515 4680
    7 6805 5265
    8 7515 5975
    9 7515 6790
    10 8230 6900
    11 8770 7355
    head函数默认显示前6行,tail函数默认显示后6行。

    2.14 分组数据和数据框

    在数据框中存储分组数据的自然方法是在一个向量中存储数据本身,另一个与之平行的因子(factor)纪录哪些数据来自哪些组。
    split函数

    2.15 隐式循环

    循环的一个常用功能是把一个函数应用到一组值或向量中的每一个元素,并将结果返回一个单式结果中。
    lapply函数总是返回一个列表;
    sapply函数尽可能将结果简化成矢量或矩阵。

    2.16 排序

    对向量排序使用sort函数。

    x<-rnorm(12)
    x
    [1] 0.4335017 0.4372568 1.1934421 1.3727015 0.3497570 0.6886749
    [7] 0.6046269 0.0287556 -0.5967954 2.3482167 -1.0567021 0.2046624
    sort(x)
    [1] -1.0567021 -0.5967954 0.0287556 0.2046624 0.3497570 0.4335017
    [7] 0.4372568 0.6046269 0.6886749 1.1934421 1.3727015 2.3482167
    order(x)
    [1] 11 9 8 12 5 1 2 7 6 3 4 10
    o<-order(x)
    x[o]
    [1] -1.0567021 -0.5967954 0.0287556 0.2046624 0.3497570 0.4335017
    [7] 0.4372568 0.6046269 0.6886749 1.1934421 1.3727015 2.3482167

    展开全文
  • R语言统计基础

    2013-05-10 23:08:20
    R语言统计技术是R语言的入门指导手册,里面囊括了R语言的基本操作编程以及基本的功能模块的应用
  • 统计软件和R语言.ppt

    2020-07-28 18:51:58
    统计软件和R语言,讲解统计语言的历史,应用背景,计算机与统计的关系,统计软件, 统计软件的问题 ,统计软件的种类,R语言的优势,R语言-软件的使用方法。
  • 统计建模与R语言软件的应用是一款建模与R语言学习的好资料
  • 介绍R语言及相关统计应用,附有具体代码,统计专业术语介绍的很详细,操作简明易懂
  • 开源的R语言集成了多种数据...本文通过描述R语言中Kmeans、Weka、IGRAPH、Holt-Winters 4种主要技术与算法,以及网站挖掘的应用实例介绍,突出R语言在海量数据的采集处理、分类、统计分析、预测、可视化等方面的优势。
  • 谈到统计就不得不说R语言,分析优势明显,而且如今的统计已经演化到生物统计、医疗统计、卫生统计、金融统计、统计应用等方面,前景很大。
  • 基于R语言的空间统计分析研究与应用_杨中庆
  • 学习与应用统计的绝佳教程。适用于统计初学者或R语言初学者。
  • 计算机互联网快速发展的背景下,衍生出来很多数据存储和大数据处理的新技术,R语言是一种统计分析软件,具有极强的互动性,大数据处理成功应用R语言,既能提升数据处理效果,又能保证数据的安全性,值得大范围推广...
  • [Packt Publishing] R 统计应用开发 初学者指南 (英文版) [Packt Publishing] R Statistical Application Development by Example Beginner's Guide (E-Book) ☆ 图书概要:☆ Learn R Statistical Application ...
  • R语言统计分析

    千次阅读 2014-02-26 09:50:51
    写过几篇关于RHadoop的技术性文章,都是从统计的角度,介绍如何让R语言利用Hadoop处理大数据。今天决定反过来,从计算机开发人员的角度,介绍如何让Hadoop结合R语言,能做统计分析的事情。 目录 R语言介绍 ...

    http://blog.fens.me/r-hadoop-intro/

    rhadoop-intro

    前言

    写过几篇关于RHadoop的技术性文章,都是从统计的角度,介绍如何让R语言利用Hadoop处理大数据。今天决定反过来,从计算机开发人员的角度,介绍如何让Hadoop结合R语言,能做统计分析的事情。

    目录

    1. R语言介绍
    2. Hadoop介绍
    3. 为什么要让Hadoop结合R语言?
    4. 如何让Hadoop结合R语言?
    5. R和Hadoop在实际中的案例

    1. R语言介绍

    起源

    R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心团队”负责开发。R是基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现。R的语法是来自Scheme。

    跨平台,许可证

    R的源代码可自由下载使用,GNU通用公共许可证,可在多种平台下运行,包括UNIX,Linux,Windows和MacOS。R主要是以命令行操作为主,同时支持GUI的图形用户界面。

    R的数字基因

    R内建多种统计学及数字分析功能。因为S的血缘,R比其他统计学或数学专用的编程语言有更强的物件导向功能。

    R的另一强项是绘图功能,制图具有印刷的素质,也可加入数学符号。

    虽然R主要用于统计分析或者开发统计相关的软体,但也有人用作矩阵计算。其分析速度可媲美GNU Octave甚至商业软件MATLAB。

    代码库

    CRAN为Comprehensive R Archive Network的简称。它除了收藏了R的执行档下载版、源代码和说明文件,也收录了各种用户撰写的软件包。全球有超过一百个CRAN镜像站,上万个第三方的软件包。

    R的行业应用

    统计分析,应用数学,计量经济,金融分析,财经分析,人文科学,数据挖掘,人工智能,生物信息学,生物制药,全球地理科学,数据可视化。

    商业竞争对手

    • SAS:(Statistical Analysis System),是SAS公司推出的一款用于数据分析和和决策支持的大型集成式模块化软件系统。
    • SPSS:(Statistical Product and Service Solutions)是IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称。
    • Matlab:(MATrix LABoratory),是MathWorks公司出品的一款商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

    2. Hadoop介绍

    Hadoop对于计算机的人,都是耳熟能说的技术了。

    Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。

    zookeeper

    Hadoop的家族成员:Hive, HBase, Zookeeper, Avro, Pig, Ambari, Sqoop, Mahout, Chukwa

    • Hive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
    • Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
    • HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
    • Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
    • Zookeeper:是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务
    • Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。
    • Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制
    • Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。
    • Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。

    自2006年,Hadoop以MapReduce和HDFS独立发展开始,到今年2013年不过7年时间,Hadoop的家族已经孵化出多个Apache的顶级项目。特别是最近1-2年,发展速度越来越快,又融入了很多新技术(YARN, Hcatalog, Oozie, Cassandra),都有点让我们都学不过来了。

    3. 为什么要让Hadoop结合R语言?

    前面两章,R语言介绍和Hadoop介绍,让我们体会到了,两种技术在各自领域的强大。很多开发人员在计算机的角度,都会提出下面2个问题。

    • 问题1: Hadoop的家族如此之强大,为什么还要结合R语言?
    • 问题2: Mahout同样可以做数据挖掘和机器学习,和R语言的区别是什么?

    下面我尝试着做一个解答:

    问题1: Hadoop的家族如此之强大,为什么还要结合R语言?

    a. Hadoop家族的强大之处,在于对大数据的处理,让原来的不可能(TB,PB数据量计算),成为了可能。

    b. R语言的强大之处,在于统计分析,在没有Hadoop之前,我们对于大数据的处理,要取样本,假设检验,做回归,长久以来R语言都是统计学家专属的工具。

    c. 从a和b两点,我们可以看出,hadoop重点是全量数据分析,而R语言重点是样本数据分析。 两种技术放在一起,刚好是最长补短!

    d. 模拟场景:对1PB的新闻网站访问日志做分析,预测未来流量变化

    d1:用R语言,通过分析少量数据,对业务目标建回归建模,并定义指标。

    d2:用Hadoop从海量日志数据中,提取指标数据

    d3:用R语言模型,对指标数据进行测试和调优

    d4:用Hadoop分步式算法,重写R语言的模型,部署上线

    这个场景中,R和Hadoop分别都起着非常重要的作用。以计算机开发人员的思路,所有有事情都用Hadoop去做,没有数据建模和证明,”预测的结果”一定是有问题的。以统计人员的思路,所有的事情都用R去做,以抽样方式,得到的“预测的结果”也一定是有问题的。

    所以让二者结合,是产界业的必然的导向,也是产界业和学术界的交集,同时也为交叉学科的人才提供了无限广阔的想象空间。

    问题2: Mahout同样可以做数据挖掘和机器学习,和R语言的区别是什么?

    a. Mahout是基于Hadoop的数据挖掘和机器学习的算法框架,Mahout的重点同样是解决大数据的计算的问题。

    b. Mahout目前已支持的算法包括,协同过滤,推荐算法,聚类算法,分类算法,LDA, 朴素bayes,随机森林。上面的算法中,大部分都是距离的算法,可以通过矩阵分解后,充分利用MapReduce的并行计算框架,高效地完成计算任务。

    c. Mahout的空白点,还有很多的数据挖掘算法,很难实现MapReduce并行化。Mahout的现有模型,都是通用模型,直接用到的项目中,计算结果只会比随机结果好一点点。Mahout二次开发,要求有深厚的JAVA和Hadoop的技术基础,最好兼有 “线性代数”,“概率统计”,“算法导论” 等的基础知识。所以想玩转Mahout真的不是一件容易的事情。

    d. R语言同样提供了Mahout支持的约大多数算法(除专有算法),并且还支持大量的Mahout不支持的算法,算法的增长速度比mahout快N倍。并且开发简单,参数配置灵活,对小型数据集运算速度非常快。

    虽然,Mahout同样可以做数据挖掘和机器学习,但是和R语言的擅长领域并不重合。集百家之长,在适合的领域选择合适的技术,才能真正地“保质保量”做软件。

    4. 如何让Hadoop结合R语言?

    从上一节我们看到,Hadoop和R语言是可以互补的,但所介绍的场景都是Hadoop和R语言的分别处理各自的数据。

    一旦市场有需求,自然会有商家填补这个空白。

    1). RHadoop
    RHadoop是一款Hadoop和R语言的结合的产品,由RevolutionAnalytics公司开发,并将代码开源到github社区上面。RHadoop包含三个R包 (rmr,rhdfs,rhbase),分别是对应Hadoop系统架构中的,MapReduce, HDFS, HBase 三个部分。

    参考文章:
    RHadoop实践系列之二:RHadoop安装与使用
    RHadoop实践系列之四 rhbase安装与使用

    2). RHive
    RHive是一款通过R语言直接访问Hive的工具包,是由NexR一个韩国公司研发的。

    参考文章:
    R利剑NoSQL系列文章 之 Hive
    用RHive从历史数据中提取逆回购信息

    3). 重写Mahout
    用R语言重写Mahout的实现也是一种结合的思路,我也做过相关的尝试。

    参考文章:
    用R解析Mahout用户推荐协同过滤算法(UserCF)

    4).Hadoop调用R

    上面说的都是R如何调用Hadoop,当然我们也可以反相操作,打通JAVA和R的连接通道,让Hadoop调用R的函数。但是,这部分还没有商家做出成形的产品。

    我写了2个例子,大家可以自己尝试着结合,做出不一样的应用来。

    参考文章:
    Rserve与Java的跨平台通信
    解惑rJava R与Java的高速通道

    5. R和Hadoop在实际中的案例

    R和Hadoop的结合,技术门槛还是有点高的。对于一个人来说,不仅要掌握Linux, Java, Hadoop, R的技术,还要具备 软件开发,算法,概率统计,线性代数,数据可视化,行业背景 的一些基本素质。

    在公司部署这套环境,同样需要多个部门,多种人才的的配合。Hadoop运维,Hadoop算法研发,R语言建模,R语言MapReduce化,软件开发,测试等等。。。

    所以,这样的案例并不太多。

    我做过一些尝试和努力,已经整理成文章的有3个项目,文章中仅仅是实现思路。

    参考文章:
    RHadoop实践系列之三 R实现MapReduce的协同过滤算法
    RHadoop实验 – 统计邮箱出现次数
    用RHive从历史数据中提取逆回购信息

    展位未来
    对于R和Hadoop的结合,在近几年,肯定会生成爆发式的增长的。但由于跨学科会造成技术壁垒,人才会远远跟不上市场的需求。

    所以,肯定会有更多的大数据工具,被发明!机会就在我们的手中,也许明天你的创新,就是我们追逐的方向!!

    加油!!

    转载请注明出处:
    http://blog.fens.me/r-hadoop-intro/

    展开全文
  • 是关于R语言统计分析的简介,适用于初次接触R语言者。
  • R语言统计分析.pdf

    2018-07-24 22:18:03
    本书介绍了R的基本功能、常用的数据处理与分析方法及它们在R中的实现. 本书的特点是: 注重统计思想、实用性和可操作性. 我们内容的设计上尽可能简化统计理论与方法的推导过程,对于主要的统计知识都通过一个具体...
  • 实现了R统计语言和JAVA的集成与融合,可跨平台运行windows和Linux操作系统的农业试验统计软件。该软件具有开源免费,用户界面友好,简单易用,系统扩展能力强等特点,非常适合应用于农业科研和教学研究
  • ISLR练习解决方案 网页链接
  • astrodatR包是R语言在天文进行数据处理的软件包,非常有用,对相关方向有研究的可以参考下。
  • ** 因为2017的AB卷大题都雷同,故B卷大题不再做详细解析,答案都可以从我主页文章找到 ** 2017A卷解析:https://blog.csdn.net/onion23/article/details/118307216 题目 解析 填空题 1. (6,8,10,...

    ** 因为2017的AB卷大题都雷同,故B卷大题不再做详细解析,答案都可以从我主页文章中找到

    ** 2017A卷解析:https://blog.csdn.net/onion23/article/details/118307216

    题目

    解析

    填空题

    1. (6,8,10,12,14)

    2. 

    2 4 6

    3 5 7

    3. 

    1 2 3 1

    1 2 3 4

    4. (3,4,5,6,7)

    5. F(x) \in [0,1]  (这题不确定)

    6. 逆变换法、合成法、筛选法

    7. 对偶变量法、分层抽样法、条件期望法、重要抽样法

    8. 合成法或逆变换法(具体步骤不再赘述)

    9. 2z_{\frac{\alpha}{2}}\frac{s}{\sqrt n} < 0.01 解出 n 即可

    10. Var(E(X|Y)) = Var(Y) - E(Var(Y|X)) 

    展开全文
  • 统计建模与R语言

    2015-09-05 21:13:36
    统计建模与R软件上册电子稿,对R软件在统计建模运用描述!
  • 统计建模与R软件 统计建模与软件 上下册 第1章 概率统计的基本知识 1.1 随机事件与概率 1.1.1随机事件 1.1.2 概率 1.1.3 古典概型 1.1.4 几何概型 1.1.5 条件概率 1.1.6 概率的乘法公式、全概率公式、Bayes...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,205
精华内容 35,682
关键字:

r语言在统计中的应用