R 小知识积累
1、grep
1 ## a为一个data frame,取含有RNA-Seq的行
2 index <- grep("RNA-Seq", a$Assay_Type)
3 b <- a[index,]
2、读取文件,选择不读哪一行
1 ##不读取带有!的行
2 data <- read.table("file",comment.char="!", sep="\t")
3、去掉数据框的某一列,添加行名, 列名
##删除第一列
b<-b[,-1]
##添加行名,列名
rowname(b) <- b[,1]
colname(b) <- b[1,]
4、sort
1 ##a为一data frame
2 ##最小值
3 sort(a$num)[1] ; 等价min(a$num)
4 ##四分位
5 sort(a$num, decreasing=T)[1] ; 等价max(a$num)
6 ##five number, 最小值,下四分位,中位数,上四分位,最大值
7 fivenum(a$num)
8 ##<5000的行
9 b <- a[a$num < 5000,]
5、strsplit 切割
1 ##以2进行分割
2 b <- "adfdfd2jdfkd"
3 strsplit(b, "2")
4 adfdf, jdfkd
6、t检验
1 t.test(1,2) 查看p value,若<0.05,则显著
7、paste, rep
1 ##a, 连续粘贴4次
2 paste("a",1:5)
3 结果:
4 a 1, a 2, a 3, a 4
5 ##a, 连续粘贴4次,以“-”连接
6 paste("a",1:5, sep='-')
7 结果:
8 a-1, a-2, a-3, a-4
9
10 ##复制a 4次
11 rep("a", 4)
12 结果:
13 a,a,a,a
8、apply 循环
1 ##b 为一个data frame, 每一行求平均数
2 apply(b, 1, function(x){
3 mean(x)
4 })
5 其中 1 代表行,2 代表列
6 上面可以简写为:
7 apply(b, 1, mean)
9、输出图片
1 ## 比如输出PDF图片
2 pdf("test.pdf", width=12, height=10)
3 ggplot(data, aes(x,y)) +geom_line()
4 dev.off
10、quantile()
## 在R语言中取百分位比用quantile()函数
> data <- c(1,2,3,4,5,6,7,8,9,10)
> quantile(data,0.5)
50%
5.5
> quantile(data,c(0.25,0.75))
25% 75%
3.25 7.75 ## 可以画阈值线,比如BSA画图时;有index 数据 data
p + geom_hline(yintercept =quantile(data, 0.95) ,color="blue",linetype=2,size-0.5)
11、which()
1 ## which 可以筛选数据库中特有的行,比如有数据框data,筛选出delt大于0的行
2 zheng <- data[which(data$delt>0),]
12、melt(),dcast()
1 ## melt() 和 dcast()为reshape2中的命令
2
3 ## melt(): 可以将长的数据框变为短的
4 > head(new_data)
5 pos xx_mean xy_mean yy_mean
6 19 36001 1.4052965 0.8884643 1.0787320
7 20 38001 0.8538059 1.0241777 1.1718369
8 21 40001 1.7150511 1.5263786 1.4663535
9 23 44001 0.0000000 1.8001673 0.9257189
10 24 46001 0.2837331 1.5285861 1.5567648
11 25 48001 0.6670272 2.0511266 0.0000000
12
13 > head(melt(new_data,id.vars = "pos"))
14 pos variable value
15 1 36001 xx_mean 1.4052965
16 2 38001 xx_mean 0.8538059
17 3 40001 xx_mean 1.7150511
18 4 44001 xx_mean 0.0000000
19 5 46001 xx_mean 0.2837331
20 6 48001 xx_mean 0.6670272
21
22 以“pos”为不变的ID列,其它变量合并在variable列中,其对应的值为value列
23
24 ## dcast(): 可以将短的数据框变为长的
25 > head(test)
26 pos variable value
27 1 36001 xx_mean 1.4052965
28 2 38001 xx_mean 0.8538059
29 3 40001 xx_mean 1.7150511
30 4 44001 xx_mean 0.0000000
31 5 46001 xx_mean 0.2837331
32 6 48001 xx_mean 0.6670272
33
34 > head(dcast(test,pos~variable))
35 pos xx_mean xy_mean yy_mean
36 1 36001 1.4052965 0.8884643 1.0787320
37 2 38001 0.8538059 1.0241777 1.1718369
38 3 40001 1.7150511 1.5263786 1.4663535
39 4 44001 0.0000000 1.8001673 0.9257189
40 5 46001 0.2837331 1.5285861 1.5567648
41 6 48001 0.6670272 2.0511266 0.0000000
42
43 ~左边的表示不变的列,右边则展开
---END----
R 小知识积累的更多相关文章
- python小知识积累
- C++ 小知识积累
(1)setw和setfill函数 #include<iomanip> 代码: #include<iostream> #include<iomanip> using ...
- Linux小知识积累
1.Linux图形界面和字符命令行界面的切换 从图形界面切换到字符界面,使用快捷键 Ctrl+Alt+F1 从字符界面切换到图形界面,使用快捷键 Ctrl+Alt+F7 2.解压文件 tar -xzv ...
- php 小知识积累
1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id']的速度是$row[id]的7倍. 3.echo比print快,并且使用echo的多重 ...
- 小知识积累-linux下一些简单开发配置
系统环境为 redhat enterprise 6.x,主要是针对初学者在linux下用gcc和vi简单测试开发的一些配置 1.vi 自动换行 在终端下敲入vi命令打开文件 : vi ~/.vimrc ...
- 小知识积累-C++使用tinyxml解析Xml内存泄漏问题
项目中需要用到C++解析XML,网上搜到tinyxml这么个开源库,就用了下试试,创建对象后内部自带Clear方法,但在循环测试的时候(刚用C++做项目不久,不会什么特别的内存泄漏测试工具,于是就写个 ...
- 【Python】 零碎知识积累 II
[Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...
- Unicode和汉字编码小知识
Unicode和汉字编码小知识 将汉字进行UNICODE编码,如:“王”编码后就成了“\王”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的 ...
- Asp.net MVC知识积累
一.知识积累 http://yuangang.cnblogs.com/ 跟蓝狐学mvc教程专题目录:http://www.lanhusoft.com/Article/169.html 依赖注入:htt ...
随机推荐
- BUAA_2020_软件工程_结对项目作业
项目 内容 这个作业属于哪个课程 班级博客 这个作业的要求在哪里 作业要求 我在这个课程的目标是 掌握软件工程的思路方法 这个作业在哪个具体方面帮助我实现目标 学习结对编程 教学班级 006 项目地址 ...
- zuul的各种配置
我们知道我们前台要展示数据给用户看,这中间可能涉及到从后端的多个微服务进行获取数据.比如获取用户信息需要用到用户微服务.获取商品信息需要获取商品微服务.创建订单需要调用订单微服务,而各个微服务可能分布 ...
- vs2017和Qt5的字符编码问题
默认vs2017的源文件字符编码是gbk的格式,Qt5的内部字符编码为utf8的格式,Qt5又去掉了设置字符串的接口,这样在源文件中使用了字符串之后,就会出现乱码问题,对原有代码逐个修改字符串是不可能 ...
- stm32f103中断学习总结
一.NVIC 介绍 NVIC 英文全称是 Nested Vectored Interrupt Controller,中文意思就是嵌套向量中断控制器,它属于 M3 内核的一个外设,控制着芯片的中断相关功 ...
- PCIe知识摘要记录
摘: 一. 在PCIe的Spec中,并没有特别详细的关于Root Complex的定义,从实际的角度来讲,可以把Root Complex理解为CPU与PCIe总线系统通信的媒介.Endpoint处于P ...
- cm0 逆向分析
目录 cm0 逆向分析 前言 Strings工具复习 String工具使用说明 Strings工具解cm0题 cm0 逆向分析 前言 Emmmmm,我假装你看到这里已经学过了我的<恶意代码分析实 ...
- Mac搭建以太坊私有链
记录过程与问题 一.安装 以go版本的ethereum进行安装 brew tap ethereum/ethereum brew install ethereum # 如果希望基于ethereum的de ...
- Linux网卡bond模式
Bond模式 交换机配置 mode=0 balance-rr 轮询均衡模式 LACP mode on 强制链路聚合 mode=1 active-backup 主备模式 无 mode=2 balance ...
- Flink 的运行架构详细剖析
1. Flink 程序结构 Flink 程序的基本构建块是流和转换(请注意,Flink 的 DataSet API 中使用的 DataSet 也是内部流 ).从概念上讲,流是(可能永无止境的)数据记录 ...
- 倒谱Cepstrum本质的理解
1.理解: 信号叠加时,不是都是线性关系(时域相互+ 频率相加):有的时候是两种信号成分相乘得到的,(时域卷积,频域相乘):比如很多齿轮啮合时振动信号调制现象,电机的轴向与径向的振动耦合时采集到的振动 ...