DAY3 生信技能树-数据挖掘第三期学习笔记

Ruizheng 的学习笔记

感谢 生信技能树 小洁老师

数据框取子集(一个、一行、一列)
选一个 用坐标
df[1,3]
选一行/一列 左边是行,右边是列
df[2,]   ### 逗号表示分割维度
df[,2]
根据行名或列名 选择

当行数和列数很多时,这个操作就很有用。
向量也可以根据“名字”提取。

nn = c("name", "gene")
df[,nn]
去掉最后一列
df[,-col(df)] 
提取列的常用操作
df$exp
数据框编辑

改一个格

df[3,3] <- 5

改一整列 / 新增一列

df$exp <- c(12,23,50)

修改行名和列名

rownames(df) <- c("r1", "r2", "r3")
数据框的两种显示形式
  1. 在environment里面直接点名字,查看预览视图,相当于View(df)
  2. 控制台显示形式(纯文本)
数据框进阶
  1. 行数较多的数据框可以截取前/后几行查看
head(iris)
tail(iris)
head(iris, 3)
  1. 行列数都多的数据框可取前几行前几列查看
    这种方法不经过赋值,只是输出、查看
iris[1:3, 1:3]

3. 查看每一列的数据类型和具体内容
str()

str(iris)
基础学习默认不要转成因子,避免因子带来的麻烦
options(stringsAsFactors = F)

4. 去除含有缺失值的行
片甲不留

na.omit(df)

仅按照某一列来去除缺失值、缺失值替换:tidyr包
5. 两个表格的连接

  • 按列连接:cbind 行数相同
  • 按行连接:rbind 列数相同
  • 智能连接:merge() 需要有共同的列名
  • 交集、并集、补集、全集等,参考dplyr包
    列名不同时,用merge
    merge(test1, test3, by.x = "name", by.y = "NAME")
    6. 如果列名顺序错乱,如何按照指定顺序重排?
    数据框列的顺序错乱,如何重排

矩阵新建和取子集

m <- matrix(1:9, nrow = 3)

矩阵不支持 $

矩阵的转置和转换
t(m)
as.data.frame(m)
矩阵画热图
pheatmap::pheatmap(m)
pheatmap::pheatmap(m, cluster_cols = F, cluster_rows = F)
列表新建和取子集
i <- list(m = matrix(1:9, nrow = 3),
            df = data.frame(gene = paste0("gene",1:3), sam = paste0("sam", 4:6)),
            x = c(1,3,5))
i$m
i$df
i$x
i[[2]]
删除变量
rm(l)  
rm(df,m)
rm(list = ls())
清空控制台

ctrl + l

元素的名字 - names()

元素可命名,用函数names(),
可以根据名字提取子集,
向量、数据框、列表通用。

x =1:10
names(x) = letters[1:10]
x["a"]
match 有大用处 !!
colnames(y) = x$ID[match(colnames(y), x$file_name)]

identical() 用于判断两个变量是否完全相同

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。