美文网首页生信星球培训第二期
学习小组Day6笔记——单双

学习小组Day6笔记——单双

作者: 丹keepbetter | 来源:发表于2018-08-25 23:18 被阅读78次

    (今天及前5天的学习笔记中的内容和网址未标记均引用自“生信星球”,少量引自百度百科等网站,记不大清了,以后及时标注)

    今天学习的主要内容:

    了解R语言中的数据对象:

    • 向量:重点
    • 数组
    • 矩阵
    • 因子
    • 列表
    • 数据框:重点

    一 向量

    向量的元素可以是数值型、字符型、逻辑值型和复数型
    向量中可以包含一个元素,也可以包含多个元素

    向量的创建——直接创建,函数创建
    向量的引用(从向量中提取元素)

    今天练习
    (1)标量和向量的区分
    (2)向量的创建和从向量中提取元素
    创建向量x<-rep(1:3,times=5)
    从向量中提取元素(根据位置和数值)

    > x[4]
    [1] 1
    > x[-4]
     [1] 1 2 3 2 3 1 2 3 1 2 3 1 2 3
    > x[2:4]
    [1] 2 3 1
    > x[-(2:4)]
     [1] 1 2 3 1 2 3 1 2 3 1 2 3
    > x[c(1,5)]
    [1] 1 2
    > x[x==1]
    [1] 1 1 1 1 1
    > x[x<2]
    [1] 1 1 1 1 1
    > x[x %in% c(1,2,5)]
     [1] 1 2 1 2 1 2 1 2 1 2
    > x[x %in% c(1,3,5)]
     [1] 1 3 1 3 1 3 1 3 1 3
    

    二 数据框

    数据框是能把各种不同类型数据组织在一起的数据结构,类似excel, 可以引用,也可以创建,但要遵守一下原则(摘自百度“爱编程爱统计”):
    1.列可以是向量(数值型、因子型、逻辑型),还可以是矩阵、列表或者其它数据框。
    2.数值型、逻辑型、因子型向量保持原样,但字符型会被自动编码成因子型。因为采用默认的参数,所以若需要自定义因子的编码规则,请首先将字符型向量通过 factor() 函数转化成因子型后再放入数据框。
    3.列向量必须具有相同的长度,若是矩阵,则其行数必须和其它向量的长度一致。

    今天练习
    (1)读取本地数据
    卡住了因为工作目录默认为其它地方了,查看getwd(), 修改setwd()注意斜线和引号

    > X<-read.csv("doudou.txt")
    Error in file(file, "rt") : cannot open the connection
    In addition: Warning message:
    In file(file, "rt") :
      cannot open file 'doudou.txt': No such file or directory
    > getwd()
    [1] "C:/Users/shanshuang/Documents"
    > setwd(C:/Users/shanshuang/Desktop/RData)
    Error: unexpected '/' in "setwd(C:/"
    > setwd(C:/Users/shanshuang/Desktop/RData)
    Error: unexpected '/' in "setwd(C:/"
    > setwd("C:/Users/shanshuang/Desktop/RData")
    > getwd()
    [1] "C:/Users/shanshuang/Desktop/RData"
    

    txt文件中如下格式,可通过x<-read.csv('文件名.txt')获得数据框

    image.png
    image.png
    image.png
    read.table(file = "huahua.txt",sep = "\t",header =T)引用如上txt文件,分隔符为tab,有表头
      X1 X2
    1  A  1
    2  B NA
    3  C NA
    4  D  3
    5  E NA
    

    (2)设置行名和列名

    > x<-read.csv('doudou.txt')
    > colnames(x)
    [1] "X1" "X2"
    > rownames()
    Error in rownames() : argument "x" is missing, with no default
    > rownames(y)
    Error in rownames(y) : object 'y' not found
    > rownames(x)
    [1] "1" "2" "3" "4" "5"
    > colnames(x)[1]<-"bioplanet"
    

    x<-read.csv(file="huahua.txt",sep="\t",header=T,row.names=1)

    image.png
    x<-read.csv(file="huahua.txt",sep="\t",header=T)
    image.png
    image.png
    (3)数据框的导出
    write.table(x,file="shanshuang0825.txt",sep=",",quote=F)分隔号为,字符串不加引号
    image.png

    (4)变量的保存与重新加载
    没有处理好的数据可保存
    save.image(file="bioinfoplanet.RData")保存所有变量
    save(frame,file="frame1.RData")保存一个变量
    下次加载load("frame1.RData")
    (5)提取元素
    我没有复制我是照抄的,结果错了,没有理解意思,机械的照抄了

    x[x,y]
    Error in `[.data.frame`(x, x, y) : object 'y' not found
    

    数据框


    image.png
    x[1,1]
    [1] A
    Levels: A B C D E
    > x[1]
      X1
    1  A
    2  B
    3  C
    4  D
    5  E
    > x[1,]
      X1 X2
    1  A  1
    > x[1:2]
      X1 X2
    1  A  1
    2  B NA
    3  C NA
    4  D  3
    5  E NA
    > x[c(1,2)]
      X1 X2
    1  A  1
    2  B NA
    3  C NA
    4  D  3
    5  E NA
    > x$X2
    [1]  1 NA NA  3 NA
    

    (6)直接使用数据框中的变量

    建一个数据框:c<-data.frame(case=paste("s",c(1:50)),value=runif(50))
    用数据框中的数据做一个散点图plot(c$case,c$value)

    更便捷的两个方法
    1.attach(c)将数据框名添加到搜索环境中plot(cases,value),删除用detach(c)

    1. with循环
      卡住了,不会输入,后来经老师指导解决
    with(c,{
      + plot(case,values)
      x<<-summary(values)   #求和并赋值给x,<<的意思是作为全局变量,y也就是出了with循环仍有效。
    })
    x #运行完后打印x
    

    练习使用一下脚本窗口:
    把with命令复制到脚本(写好的各种代码)窗口中,选中,点run即可运行,点save,选第一个system default, 可保存脚本,后缀为.R,下次可直接打开运行

    image.png

    昨天的问题解决:
    history()结果显示在右上窗口中的history里面,不在控制台里

    相关文章

      网友评论

      本文标题:学习小组Day6笔记——单双

      本文链接:https://www.haomeiwen.com/subject/rgogiftx.html