• 《r语言实战》菜鸟学习笔记(一)


    打算学习一下r语言(windows下载),不知道从什么地方开始学习,加上本人的数理统计基础比较薄弱,所以就漫无目的的从网上找教程。

    其实我逛的最多的网站还是知乎,读了好多很好的答案后,我选择了两本书,《153分钟学会r》《r语言实战》。前者大概扫了一眼,不太适合边看书边敲代码(我个人比较喜欢这种),所以后者就比较适合我,这套书还是比较适合菜鸟看的,我还看过《集体智慧编程》,很不错。

    下面开始了第一段程序。(博客园没有r语言选项,只好用plain txt了)

    age <- c(1,3,5,2,11,9,3,9,12,3)
    weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
    mean(weight)
    plot(age,weight)
    q()

    代码很简单,不多说了。

    这段代码要注意的地方有:正斜杠,小数点后三位,均匀分布。

    setwd("F:/R Code") #如果不存在需要使用dir.create()创建目录
    options()
    options(digits=3)
    x<-runif(20)
    #摘要统计量 summary(x)
    #直方图 hist(x) savehistory() save.image() q()

    接下来就要讨论r语言的数据结构了

    r语言包含了4中数据结构:向量,矩阵,数组和数据框。

    1.向量是一维的

    a <- c(1,2,5,3,6,-2,4)

    2.矩阵是二维的

    cells <- c(1,26,24,68)
    rnames <- c("R1","R2")
    cnames <- c("C1", "C2")
    mymatrix <- matrix(cells,nrow=2, ncol=2, byrow=TRUE,  
        dimnames=lilst(rnames,cnames)) #按行填充

    3.数组可以是多维的

    dim1 <-c("A1","A2")
    dim2 <- c("B1","B2","B3")
    dim3 <- c("C1","C2","C3","C4")
    #array(vector, dimanesions,dimnames)
    z <- array(1:24, c(2,3,4), dimnames=list(dim1,dim2,dim3))

    4.数据框 这个就是大杂烩了

    patientID <- c(1,2,3,4)
    age <- c(25,34,28,52)
    diabetes <- c("Type1", "Type2", "Type1", "Type1")
    status <- c("Poor","Improved", "Excellent", "Poor")
    patientdata <- data.frame(patientID, age, diabetes, status)

      取数据框中的某一个元素:patientdata$age,如果不想每一次都输入patientdata$,可以使用attach() detach()或者单独使用函数with()来简化代码。

    #概要的统计数据
    summary(mtcars$mpg)
    #作图
    plot(mtcars$mpg, mtcars$disp)
    plot(mtcars$mpg, mtcars$st)
    
    #以上代码等同于下面的代码
    attach(mtcars)
      summary(mpg)
      plot(mpg, disp)
      plot(mpg, wt)
    detach(mtcars)

      然后使用detach()将数据框从搜索路径中移除。

    mpg <- c(25, 36, 47)
    attach(mtcars)
    #attention 原始对象用于优先权
    plot(mpg, wt)
    mpg

     上面说的是attach,接下来看看with怎么用

    with(mtcars, {
        summary(mpg, disp, wt)
        plot(mpg, disp)
        plot(mpg, wt)
    })

    with {} 之间的语句都是针对数据框mtcars的,所以这样就不用担心上面的名字冲突的问题了,而with的最大问题是{}内的操作都是局部的,有点像函数的内部变量,传递不出去,看个例子

    with(mtcars, {
        stats <- summary(mpg)
        stats
    })
    #下面这句话将产生错误(Error:object 'stats' not found)
    stats

    但是这种缺点可以克服吗?使用<<-赋值就可以了。不知道R语言为什么会有这样的设计。

  • 相关阅读:
    手把手的教你激活PyCharm --Pycharm激活详细教程(二)(非常详细,非常实用)
    api-ms-win-crt-process-l1-1-0.dll 丢失的处理,遇到问题和完美解决
    关于pycharm安装出现的interpreter field is empty,无法创建项目存储位置
    手把手的教你安装PyCharm --Pycharm安装详细教程(一)(非常详细,非常实用)
    谷歌浏览器的各种插件网址Chrome插件(谷歌浏览器)-超级详细
    selenium之 chromedriver与chrome版本映射表(更新至v2.43)
    火狐l浏览器所有版本
    1、MySQL主从同步机制及同步中的问题处理
    PyCharm证书过期:Your license has expired
    Git的使用--如何将本地项目上传到Github(三种简单、方便的方法)(二)(详解)
  • 原文地址:https://www.cnblogs.com/shyustc/p/4003225.html
Copyright © 2020-2023  润新知