学习小组Day5笔记--小黄

作者: Kevin66_b50e | 来源:发表于2020-12-09 00:31 被阅读0次

    新手记录

    1.表格在R语言中叫做数据框了
    2.?read.table就是查看和read命令相关的帮助文档,类推的话,?+任何命令都是查看对应的帮助文档
    3.数据类型有向量(Vector)、矩阵(Matrix)、数组(Array)、数据框(Dataframe)、列表(List)。加粗的是重点哦。

    元素和向量

    1.元素可以是数字或者字符串(与其他编程语言类似),一个元素组成的就叫标量,多个元素组成的就叫向量。同时也因为向量是有序排列的一组元素(此处的有序不一定非得是数学上的逻辑顺序,只要排列了就相当于给了一个特定顺序),所以可以把向量作为数据框的一列。
    2.变量赋值昨天有说,今天新了解的是数据框也可以赋值给变量!神奇。
    PS:试一下View(x),x是变量名,会有新发现。其实在environment里面单击也可以,但是实测Value好像不行,Data可以。
    3.在向量中提取元素有两种方法。
    一种是按位置:

    x[4] #取第四个元素
    x[-4] #取除了第四个以外的元素
    x[2:4] #取第2~4个元素
    x[2:7] #取第2~7个元素(没有了会报错)
    x[-(2:4)] #取除了第2~4个元素
    x[c(1,5)] #取第一个和第五个元素,个人理解是这个语法只能取一次,所以要完成的话,括号里只能是一个向量,重点在于“一个”
    

    另一种是按值:

    x[x==3]#等于3的元素,照葫芦画瓢,两个等号才是等于
    x[x<0]#小于0的元素
    x[x>1]#大于1的元素
    x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素,这个可以有也可以没有,应该都不会报错【没有的话好像会报integer(0)】理解的话同上。
    

    数据框

    1.读取本地数据
    先把示例数据放到工作目录下,否则会报错。然后调用read命令。read有很多后缀,决定了读取后的数据框格式,这里只是举一例。

    read.table(file = "huahua.txt",sep = "\t",header=T)#读取数据,形成数据框
    a<-read.table(file = "huahua.txt",sep = "\t",header=T)#把数据框赋值给变量a
    

    sep指的是字段分隔符,每行的值都是由该字符分割的
    header指的是数据第一行是否为数据框的第一行(T/F),默认的话基本就是F,这时R会自动给你一个数据框的行标题(V1,V2等等)

    2.设置行名列名

    X<-read.csv("doudou.txt")#数据框赋值给X
    colnames(X)#查看列名
    rownames(X)#查看行名,默认值的行名就是行号,1.2.3.4...
    colnames(X)[1]<-"bioplanet"#更改第一列列名为bioplanet
    X<-read.csv(file="huahua.txt",sep = "",header = T,row.names = 1)#row.names的意思是把第一列当做行名
    #这时候我们改的bioplanet就不见了,因为它是原来的第一列的列名,而现在第一列的值都变成了行名,只剩了一列,即原来的第二列
    

    3.数据框导出

    write.table(X,file = "yu.txt",sep = ",",quote = F)#把变量X中的数据框导出为新文件,命名为yu.txt,分隔符改为逗号,字符串不加双引号(默认格式带双引号) 
    

    4.变量保存与重新加载

    save.image(file = "bioinfoplanet.RData")#保存当前所有变量
    save(X,file = "test.RData")#保存X变量
    load("test.RData")#加载X变量,之前保存在这个文件中
    

    RData是R语言的数据保存格式,退出RStudio之后,就可以在工作目录中看到这几个新变量啦。

    5.提取元素
    因为现在的变量X是数据框,所以取到的都是数据框里的数据

    X[1,2]#第一行第二列
    X[2,1]#第二行第一列
    X[2,]#第二行全部
    X[,]#全部数据
    X[,2]#第二列全部
    X[1:2]#第一列到第二列
    X[c(1,3)]#第一列和第三列
    X$X1#这里X1是列名,并且支持自动补全,但是只能提取一列
    

    6.直接使用数据框中的变量(我就是个只会引用的憨憨)

    提取某两列作散点图:
    (需要提示一下,这里的case和values是两个单纯的列名,没别的意思)

    options(stringsAsFactors = T)
    a <-data.frame(case=paste0("S",1:9),values=runif(9))
    plot(a$case,a$values)
    

    这种方法有个缺点:数据框名a在代码中重复出现
    那么如何懒惰地实现:
    将数据框名添加到搜索环境中:attach(a),作图时就只需输入列名(连$都不用了)。

    attach(a)
    plot(case,values)
    detach(a)#做完后将a删除出搜索环境
    

    局限性:两个以上数据框的列名有冲突时,同时attach会报错。

    方法二没看懂就不弄了。

    让我们看下效果: 上面的图.png

    今天就这样啦~

    相关文章

      网友评论

        本文标题:学习小组Day5笔记--小黄

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