美文网首页
R语言基础学习2

R语言基础学习2

作者: 7f0a92cda77c | 来源:发表于2021-06-21 14:04 被阅读0次

    数据结构

    数据框
    矩阵
    列表
    1 Vector 向量—一维
    sample(1:100,7) #不放回抽样
    #[1] 44 38 65 80 91 59 58
    

    2 矩阵—二维,所有列的数据类型相同,两个维度(行数和列数)

    matrix(sample(1:100,28), nrow = 4)
    
    2.1矩阵新建和取子集
    m <- matrix(1:9, nrow = 3)
    
    m
    colnames(m) <- c(LETTERS[1:3])
    
    colnames(m)
    2.2 矩阵的转置和转换
    t(m)
    
    t(m)
    2.3 转换为数据框
    as.data.frame(m)
    

    3 数据框,长度相同,数据类型可以不相同

    3.1 新建数据框 (本质是向量按列组合)
    df <- data.frame(gene = paste0("gene",1:20),
                     sam = paste0("sample",1:20),
                     exp = sample(1:100,20))
    
    3.2 .数据框属性描述

    1.维度(有几行几列)

    dim(df)
    
    1. 行名/列名
    colnames(df)
    rownames(df)
    
    3.3 .数据框取/去除 -(前面加入一个减号) 子集(一个、一行、一列、多行多列)
    3.31 --坐标 ; 中括号里的逗号,表示维度的分割

    df[行号,列号]

    3.32 根据行名或列名
    df[,c("gene","sam")]
    df[,-3]
    
    取某一子集df[,c("gene","sam")]
    去除某一个子集df[,-3]
    3.33 提取列的常用操作

    能对向量的操作都是可以对提取的列进行操作的

    df$
    3.4 数据框修改 --- 取子集$或[] +赋值操作
    df$exp <- c(sample(1:50,20))
    #能对向量进行的计算和统计,都能对df$exp做
    
    修改数据框的行名和列名
    #改全部行名
    rownames(df)
    #改一个行名
    #修改第二列的行名,就是修改行名这个向量的第二个元素
    rownames(df)[2]
    
    3.5 数据框进阶
    (1)行数较多的数据框可截取前/后几行查看
    head(iris,n=10)
    
    (2)行列数都多的数据框可取前几行前几列查看
    iris[1:10,1:10]
    
    (3) 查看每一列的数据类型和具体内容
    str(df)
    
    (4)去除含有缺失值的行:
    na.omit(df)
    
    (5)两个表格的连接
    cbind #按列连接,行数相同
    rbind #按行连接,列数相同
    

    可以按照共同的列名来进行连接

    merge(df1,df2, by.x = "df1NAME", by.y = "df2name")
    

    4 列表

    4.1 列表新建和取子集
    li <- list(m=matrix(1:15,nrow=5),
               df=data.frame(gene=paste0("gene",1:3),sam = paste0("sample",1:3),exp=sample(1:20,3)),
               x=c(1,3,2))
    
    li

    取子集

    li[[2]]#尽量使用这个
    li$df 
    
    5 删除变量

    删除一个rm(l)
    删除多个rm(df,m)
    删除全部rm(list = ls())
    清空控制台ctrl+l

    https://mp.weixin.qq.com/s/rA92iZS8HUiuwlyrPirHdA

    相关文章

      网友评论

          本文标题:R语言基础学习2

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