Day5--学习笔记--smartyy

作者: SmartSwift_529d | 来源:发表于2020-03-13 23:10 被阅读0次

    1.向量

    向量分为:字符型向量逻辑型向量数字型向量
    向量中所有的元素都必须是同一属性

    • 向量的创建
      函数:c()是创建向量是最常用的方式
    ages <- c(4, 7, 6, 5, 6, 7)   ## 数值型向量
    colors <- c('red', 'black', 'blue', 'yellow')  ## 字符型向量
    booleans <- c(TRUE, FALSE, TRUE, FALSE, TRUE)  ## 逻辑型向量
    

    函数的参数也可以是向量,比如:

    > new_ages <- c(12, ages, 17)
    > new_ages <- c(12,ages,17)
    > new_ages
    [1] 12  4  7  6  5  6  7 17
    
    • 查看向量的类型
      函数class()用来查看向量的类型
    > class(ages)
    [1] "numeric"
    > class(colors)
    [1] "character"
    > class(booleans)
    [1] "logical"
    
    • 查看向量的大小
      向量的大小是指向量中元素的个数,可以用length()函数来查看
    > length(ages)
    [1] 6
    > length(colors)
    [1] 4
    > length(booleans)
    [1] 5
    
    • 访问向量中的元素
      在R中,[]来指定索引
      1.获取向量ages的第四个元素
    > ages[4]
    [1] 5
    

    2.获取向量ages的第二、第三和第六个元素

    > ages[c(2, 3, 6)]
    [1] 7 6 7
    

    3.访问除第四个元素之外的其它元素

    > ages[-4]   ## 访问除第四个元素外的其它元素
    [1] 4 7 6 6 7
    

    4.访问大于5的元素

    > ages[ages > 5]  ##通过逻辑运算访问所需元素
    [1] 7 6 6 7
    

    5.访问第1个到第4个元素

    > ages[1:4]
    [1] 4 7 6 5
    

    注意:元素访问操作不会改变原向量的内容。

    补充两个与赋值有关的函数:

    • sep()函数
    x<- seq(1,10,by = 0.5) #1-10之间每隔0.5取一个数(注意是逗号不是分号)
    > x
     [1]  1.0  1.5  2.0  2.5  3.0
     [6]  3.5  4.0  4.5  5.0  5.5
    [11]  6.0  6.5  7.0  7.5  8.0
    [16]  8.5  9.0  9.5 10.0
    
    • rep()函数
    x<- rep(1:3,times=2) #1-3 重复2次
    [1] 1 2 3 1 2 3
    

    2.数据框

    将两个实例文件下载到工作目录下

    • douodu.txt
    • huahua.txt

    2.1读取本地数据

    使用X<-read.csv('doudou.txt')读取文件doudou.txt

    > read.csv('doudou.txt')
      X1 X2
    1  A  1
    2  B NA
    3  C NA
    4  D  3
    5  E NA
    

    使用read.table(file="huahua.txt",sep="\t",header=T)读取文件huahua.txt

    > 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
    

    那么参数sepheader是什么含义呢?使用?read.table查看一下吧

    sep和header.png
    header:一个逻辑值,指示文件是否包含变量名称作为其第一行。 如果丢失,则从文件格式确定该值:当且仅当第一行包含的字段少于列数时,标头才设置为TRUE。(代码中,TRUE可以写成T)

    sep:字段分隔符。 文件每一行上的值都用此字符分隔。 如果sep =“ ”(read.table的默认设置),则分隔符为“空白”,即一个或多个空格,制表符,换行符或回车符。
    那么如何理解刚刚为了读取文件huahua.txt而使用的代码`sep="\t"呢?

    转义符的使用.png
    可见\t的意思是:水平制表符。将当前位置移到下一个Tab位置
    而huahua.txt中输入数据时用的正是Tab键
    huahua中使用了Tab.png

    2.2设置行名和列名

    rownames()查看行名
    colnames()查看列名
    当没有设置行名时(如我们的实例文件生成的数据框就没有行名,只有列名),此时输入rownames()命令将输出默认行名,即1,2,3,4

    > X <- read.csv('doudou.txt') ##先数据框赋值给变量X
    > X
      X1 X2
    1  A  1
    2  B NA
    3  C NA
    4  D  3
    5  E NA
    > colnames(X) ##查看列名
    [1] "X1" "X2"
    > rownames(X) ##查看行名,原始数据没有设置行名?那就输出默认行名
    [1] "1" "2" "3" "4" "5"
    

    补充(帮助理解变量的含义):

    colnames(X)[1]<-"bioplanet"#有的公司返回数据,左上角第一格为空,R会自动补为x,用这个命令来修改
    > X
      bioplanet X2
    1         A  1
    2         B NA
    3         C NA
    4         D  3
    5         E NA
    > X <- read.csv('doudou.txt') ##其实我们这个数据框并不需要改,如果你已经改了,知道怎么撤销吗?用刚才的read.table命令重新赋值一遍就可以覆盖掉你刚才改瞎的了
    > X
      X1 X2
    1  A  1
    2  B NA
    3  C NA
    4  D  3
    5  E NA
    

    2.3数据框的导出

    write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改为逗号,字符串不加双引号(默认格式带由双引号) 
    > write.table(X,sep=",",quote=F)
    X1,X2
    1,A,1
    2,B,NA
    3,C,NA
    4,D,3
    5,E,NA
    

    ---引自生信星球

    4.变量的保存与重新加载

    这次没有处理完的数据下次想接着用怎么办?
    学会保存和重新加载,保存的格式是.RData

    • save.image(file="bioinfoplanet.RData"),没有指定保存哪个变量,那么就保存当前所有变量到文件夹bioinfoplanet.RData中
    • save(X,file="jyy.RData"),保存其中一个变量X
    • load("jyy.RData"),需要使用变量X时,加载X所在文件的命令
      先将变量X保存到文件jyy.RData中
    > save(X,file="jyy.RData")
    > load("jyy.RData")
    

    好,现在关闭Rstudio,等下次打开Rstudio时
    需要使用X时,输入命令load("jyy.RData")加载jyy.RData文件

    保存和重新加载数据框.png

    所以现在我就知道如何保存一个未完成的数据框了,先赋值给一个变量X,保存X到一个文件.RData,下次需要用时重新加载该文件,输入X即可得那个数据框

    5.提取变量(数据框)中的元素

    > load("jyy.RData")
    > X
      X1 X2
    1  A  1
    2  B NA
    3  C NA
    4  D  3
    5  E NA
    > X[1,2] ##提取第1行,第二列的元素
    [1] 1
    > X[2,] ##提取第2行的元素
      X1 X2
    2  B NA
    > X[,2] ##提取第二列的元素
    [1]  1 NA NA  3 NA
    > X[2] ##[ ]内只有一个数字时,默认提取该数字对应的整列
      X2
    1  1
    2 NA
    3 NA
    4  3
    5 NA
    > 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$X1 ## $列名可以提取该列的元素,不过只限于一列
    [1] A B C D E
    Levels: A B C D E
    

    相关文章

      网友评论

        本文标题:Day5--学习笔记--smartyy

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