生信技能树课程记录笔记(三)20220526
matrix 矩阵——只允许一种数据
data.frame 数据框——每列只允许一种数据类型
list 列表——各种都可
依据生成函数判断/用class 或i函数判断一下数据类型
一、数据框
新建数据框
df1 <- data.frame(gene = paste0("gene",1:4),
change = rep(c("up","down"),each = 2),
score = c(5,3,-2,-4))
df1
读取数据框
df2 <- read.csv("gene.csv")
df2
数据框属性
#
dim(df1)###返回行和列
nrow(df1)###返回行
ncol(df1)###返回列
#
rownames(df1)###提取行名
colnames(df1)###提取列名
数据框取子集
df1$gene #删掉score,按tab键试试
mean(df1$score)
## 按坐标
df1[2,2]
df1[2,]
df1[,2]
df1[c(1,3),1:2]
## 按名字
df1[,"gene"]
df1[,c('gene','change')]
## 按条件(逻辑值)
df1[df1$score>0,]
## 代码思维
#如何取数据框的最后一列?
df1[,3]
df1[,ncol(df1)]
#如何取数据框除了最后一列以外的其他列?
df1[,-ncol(df1)]
#筛选score > 0的基因
df1[df1$score > 0,1]
df1$gene[df1$score > 0]
数据框修改
#改一个格
df1[3,3] <- 5
df1
#改一整列
df1$score <- c(12,23,50,2)
df1
#用修改的方式新增了一列
df1$p.value <- c(0.01,0.02,0.07,0.05)
df1
#改行名和列名
rownames(df1) <- c("r1","r2","r3","r4")
#只修改某一行/列的名
colnames(df1)[2] <- "CHANGE"
两个数据框的连接 ##merge函数
test1 <- data.frame(name = c('jimmy','nicker','Damon','Sophie'),
blood_type = c("A","B","O","AB"))
test1
test2 <- data.frame(name = c('Damon','jimmy','nicker','tony'),
group = c("group1","group1","group2","group2"),
vision = c(4.2,4.3,4.9,4.5))
test2
test3 <- data.frame(NAME = c('Damon','jimmy','nicker','tony'),
weight = c(140,145,110,138))
test3
merge(test1,test2,by="name")
merge(test1,test3,by.x = "name",by.y = "NAME")
二、矩阵和列表
矩阵不支持取子集,列表取子集要两重中括号
矩阵
m <- matrix(1:9, nrow = 3)
colnames(m) <- c("a","b","c") #加列名
m
m[2,]
m[,1]
m[2,3]
m[2:3,1:2]
m
t(m)
as.data.frame(m)
列表
l <- list(m1 = matrix(1:9, nrow = 3),
m2 = matrix(2:9, nrow = 2))
l
l[[2]]
l$m1
补充:元素的名字
scores = c(100,59,73,95,45)
names(scores) = c("jimmy","nicker","Damon","Sophie","tony")
scores
scores["jimmy"]
scores[c("jimmy","nicker")]
names(scores)[scores>60]
# 删除变量
rm(l)
rm(df1,df2)
删除全部
rm(list = ls())
清空控制台
ctrl+l
class(l[2]) 结果:list
class(l[[2]])结果:matrix
生信技能树课程记录笔记(三)20220526相关推荐
- 生信技能树课程记录笔记(七)20220531
一.数据框排序 法一:sort函数 默认升序. 例:sort(test$Sepal.Length) 法二:order函数 默认升序,返回数据下标组成的数组. 可以给向量排序,也可以给数据框排序 例:t ...
- R:生信技能树学习笔记一
生信技能树小破站:R应该这样学1-4 1.查看已经安装的包的地址 .libPaths() 2.怎么查看函数用法 #在RStudio的右下角窗口的help可以看到 ?函数名 3.三个有用的函数 1.he ...
- R:生信技能树学习笔记二
生信技能树小破站:R应该这样学5-7 1.热图 rm(list=ls()) library(pheatmap) a1=rnorm(100) dim(a1)=c(5,20) #设置维度 pheatmap ...
- CancerSubtypes包的介绍(根据生信技能树Jimmy老师分享的乳腺癌分子分型包资料整理)
CancerSubtypes包的介绍(根据生信技能树Jimmy老师分享的乳腺癌分子分型包资料整理,感谢Jimmy老师!) 1. 引言 2. 数据处理 2.1 基本处理 2.1.1 通过检查数据分布来分 ...
- ProTICS包的介绍(根据生信技能树Jimmy老师分享的乳腺癌分子分型包资料整理)
ProTICS包的介绍(根据生信技能树Jimmy老师分享的乳腺癌分子分型包资料整理,感谢Jimmy老师!) 1.设置环境 2.Part1的结果 3.Part2的结果 4.Part3的结果 5.相关函数 ...
- 生信技能树【代码大全搜录】
生信技能术代码大全: rm(list = ls()) options()$repos options()$BioC_mirror #options(BioC_mirror="https:// ...
- TCGA学习笔记一(生信技能树概述版)
1.背景介绍 重要数据 外显子数据 表达数据 小RNA测序数据 拷贝数芯片 甲基化数据 蛋白质组学数据 临床信息 癌症背景知识 网页工具大全 GDC cbioportal:按照paper来分类的 UC ...
- 菜鸟生信学习第三节笔记:plink常用功能
plink由哈佛大学的Shaun Purcell开发的一个免费,开源的全基因组关联分析软件. 官网:PLINK 1.9 主要功能: 1.数据提取,合并.提取特定SNP.样本.基因组某段区域的基因型3. ...
- 生信技能树 电脑配置linux,生信技能树--Jimmy - Linux 20题
一.在任意文件夹下面创建形如 1/2/3/4/5/6/7/8/9 格式的文件夹系列. 二.在创建好的文件夹下面,比如我的是 /Users/jimmy/tmp/1/2/3/4/5/6/7/8/9 ,里面 ...
最新文章
- “智享未来 知行合一”,开为科技AI产品发布会于2月6日召开
- 使用TortoiseGit,设置ssh方式连接git仓库。
- Android常见XML属性解析
- PL/SQL学习笔记-循环控制与顺序控制
- 获取jpg图片的x,y的分辨率dpi
- 2017.5.9 寻找道路 思考记录
- 智能排班系统、班次、班表、考勤、年假、调休、审批、请假、培训、值班、换班、加班、工时、自动排班、智能预测、人力需求预测、授权、团队、锁定量排、规则权重设置、菜单、角色、数据监控、工作台、axure
- 模板建网站-开源工具
- 【Tensorflow2.0】关于制作标签遇到的问题小结
- 三菱服务器显示rb是什么故障,​三菱伺服驱动器常见报警代码及解决办法
- 有意思的DCDC工作原理
- Google Earth Engine(GEE)基于哨兵数据计算植被覆盖度—以宁夏为例
- unity点光源消失
- Nordic新发布nRF21540与RFX2401C和CC2592性能对比
- [svn] TortoisSVN的Blam功能
- PHP处理CODE128C条形码数据为标准的打印机ESC指令
- java计算器rmi_用RMI计算Pi
- VTK学习-第一个多柱体生成
- k8s部署nginx例子
- 施耐德PLC TM218如何实现远程上传下载程序?