美文网首页生信星球培训第五十四期生物信息学习史
学习小组54期 5th day-数据结构--忍冬

学习小组54期 5th day-数据结构--忍冬

作者: 忍冬_a284 | 来源:发表于2020-04-21 23:44 被阅读0次

    2020-04-21

    今天的内容:

    数据结构

    1. 标量和变量
    > x<-c(1,2,3)
    > x
    [1] 1 2 3
    > x<-1:10
    > x
     [1]  1  2  3  4  5  6  7  8  9 10
    > x<-seq(1,10,by = 0.5)
    > x
     [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
    > x<-rep(1:3,times=2)
    > x
    [1] 1 2 3 1 2 3
    
    1. 从向量中提取元素
      2.1 根据元素位置
    > x[4]
    [1] 1
    > x[-4]
    [1] 1 2 3 2 3
    > x[2:4]
    [1] 2 3 1
    > x[-2:4]     #R的代码都是带括号的,括号必须是英文的。
    Error in x[-2:4] : only 0's may be mixed with negative subscripts
    > x[-(2:4)]
    [1] 1 2 3
    > x[-(2)&-(4)]    #不理解啥意思,难道不是:排除第2及第4后的元素吗?
    [1] 1 2 3 1 2 3
    > x[c(2,4)]
    [1] 2 1
    > x[c(2:4)]
    [1] 2 3 1
    > 
    

     2.2 根据值

    > x==10   #x=10的元素
    [1] FALSE FALSE FALSE FALSE FALSE FALSE
    > x==1
    [1]  TRUE FALSE FALSE  TRUE FALSE FALSE
    > x<2
    [1]  TRUE FALSE FALSE  TRUE FALSE FALSE
    
    1. 数据框
      3.1 读取本地数据
      上传数据到newbee.Rproj所在目录:


    > read.table(file ="huahua.txt",sep = "\t",header =T)
      X1 X2
    1  A  1
    2  B NA
    3  C NA
    4  D  3
    5  E NA
    

     3.2 设置行名、列名

    > X<-read.csv("doudou.txt")
    > col(X)
         [,1] [,2]
    [1,]    1    2
    [2,]    1    2
    [3,]    1    2
    [4,]    1    2
    [5,]    1    2
    > colnames(X)
    [1] "X1" "X2"
    > rownames(X)
    [1] "1" "2" "3" "4" "5"
    > colnames(X)[1]<-"bioplanet"   #命名第一列
    > X
      bioplanet X2
    1         A  1
    2         B NA
    3         C NA
    4         D  3
    5         E NA
    X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1) #row.names的意思是修改第一列为行名
    
    X

     3.3 数据框的导出

    > write.table(X,file="yu.txt",sep = ",",quote = F)  #分隔符改为逗号,字符串不加双引号(默认格式带由双引号) 
    
    yu.txt

     3.4 变量的保存与重新加载

    > save.image(file="bioinfoplanet.RData")#保存当前所有变量
    > save(X,file="test.RData")#保存其中一个变量
    > load("test.RData")#再次使用RData时的加载命令
    

     3.5 提取变量

    X[x,y]#第x行第y列
    X[x,]#第x行
    X[,y]#第y列
    X[y] #也是第y列
    X[a:b]#第a列到第b列
    X[c(a,b)]#第a列和第b列
    X$列名#也可以提取列(优秀写法,而且这个命令还优秀到不用写括号的地步,并且支持Tab自动补全哦,不过只能提取一列)

    > X
      X2
    A  1
    B NA
    C NA
    D  3
    E NA
    > X[2,2]
    NULL
    > X[2,1]
    [1] NA
    > X[1,1]
    [1] 1
    > X[4,]
    [1] 3
    > X[,1]
    [1]  1 NA NA  3 NA
    > X[,0]
    data frame with 0 columns and 5 rows
    > X[1]
      X2
    A  1
    B NA
    C NA
    D  3
    E NA
    > X$X2   #列名
    [1]  1 NA NA  3 NA
    

     3.6 直接使用数据框中的变量

    a <-data.frame(case=paste("S",1:50),values=runif(50))
     plot(a)
    
    a
    plot(a$case,a$values)   #发现x y轴名改变了
    
    a`
    • 1:attach

    将数据框名添加到搜索环境中:attach(a),作图时就只需输入列名(连$都不用了)。

    attach(a)
    plot(case,values)
    

    做完后将a删除出搜索环境 detach(a)
    局限性:两个以上数据框的列名有冲突时,同时attach会报错。

    • 2:with
    with(a,{
     plot(case,values)
    x<<-summary(values)   #求和并赋值给x,<<的意思是作为全局变量,也就是出了大括号仍有效。
    })
    x #运行完后打印x
    

     3.7 思考题

    save(X,file="test.RData")这句代码如果报错X not found,是为什么,应该怎么解决?

    可能的原因:X不存在?此时应该检查X的变量名称是否正确?或者工作的目录变化了?其实我不知道原因……

    相关文章

      网友评论

        本文标题:学习小组54期 5th day-数据结构--忍冬

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