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 ...
随机推荐
- Java RMI学习与解读(一)
Java RMI学习与解读(一) 写在前面 本文记录在心情美丽的一个晚上. 嗯.就是心情很美丽. 那为什么晚上还要学习呢? emm... 卷... 卷起来. 全文基本都是根据su18师傅和其他师傅的文 ...
- mybatis学习笔记(2)基本原理
引言在mybatis的基础知识中我们已经可以对mybatis的工作方式窥斑见豹(参考:<MyBatis----基础知识>).但是,为什么还要要学习mybatis的工作原理?因为,随着myb ...
- SpringCloud+RocketMQ实现分布式事务
随着互联网公司的微服务越来越多,分布式事务已经成为了我们的经常使用的.所以我们来一步一步的实现基于RocketMQ的分布式事务.接下来,我们将要做的主题写出来. RocketMQ的分布式事务结构和说明 ...
- vs2010中使用命令行参数
使用VS2010增加命令参数的时候老是不起作用,后面经过研究发现,所要增加的命令参数是一个相对文件路径,而默认的工作目录里面没有该文件,所以就没有找到,需要修改工作目录,这样命令行参数才能够起作用.
- 不可错过的stm32单片机直流电机驱动与测速详解
stm32直流电机驱动与测速 说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了 ...
- 洛谷 P2680 [NOIP2015 提高组] 运输计划
链接:P2680 题意: 在树上把一条边边权变为0使得最长给定路径最短 分析: 最大值最小可以想到二分答案,对于每一个mid,寻找所有大于mid的路径,再寻找是否存在一条边使得删去它后大于mid的路径 ...
- 如何反编译微信小程序👻
如何反编译微信小程序 准备工具: 夜神模拟器(或者你可以自己准备一个安卓模拟器,有root权限.) RE文件管理器(下载地址:https://soft.ucbug.com/uploads/shouji ...
- C++ pragma once 与 ifndef 用法区别
#pragma once 与 #ifndef 的作用 (1)在C/C++中,在使用预编译指令#include的时候,为了防止重复引用造成二义性. (2)在能够支持这两种方式的编译器上,二者并没有太大的 ...
- LeetCode88 合并有序数组
1. 这道题为简单题目,但是还有需要好好思考的 2. 首先不能使用额外数组合并,不然就没得后文了 3. nums1后面有0填充,且填充数量正好是n,整个数组大小即m+n能够容纳合并后的数据 4.既然要 ...
- Python 爬取 猫眼
1. import requests import re import pymongo MONGO_URL='localhost'#建立连接 MONGO_DB='Maoyan'#创建数据库 clien ...