R语言相关的一些笔记。
有用的R包
rmarkdown
可用来编程式写作,可实现交互式,支持R和python,还可以用来做网站
slidify
可用来做幻灯片,用R code和各种包实现交互式
shiny
可用来做交互式的App
formatR
可以对R 语言进行整理,不必担心代码的乱七八糟.现在Rstudio已经集成了这个包可以使用 shift+ctrl(cmd)+A进行代码整理
magrittr和pipeR
使得可以在R中使用管道操作符%>%
和%>>%
foreach
简化循环语句 %do%
并行运算 %dopar%
parallel,doSNOW和doMC
并行运算
doParallel package is a merger of doSNOW and doMC
parallel is a merger of snow and multicore
doMC on a Linux or Mac OS X computer, doParallel on a Windows computer, and doMPI on a Linux cluster, but doParallel does work on all of those platforms.
rbenchmark
比较
data.table
升级版的data.frame,有key
写一个自己的包
需要的包
devtools
roxygen2
create("your_package_name")
生成相应的目录,将你的.R文件拷贝到your_package_name/R
目录下document("your_package_dir")
自动生成function的描述,使用说明install("your_package_name")
安装你的包
R安装包相关
查看library安装的路径
.libPaths()
查看已安装的包
library()
查看已加载的包
search()
安装bioconductor包
1 | source("http://bioconductor.org/biocLite.R") |
从source用命令行安装
R CMD INSTALL matchprobes_1.16.0.tar.gz
console下安装包
install.packages("rmarkdown",repos="http://cloud.r-project.org/")
repos可指定镜像地址
升级包
update.packages()
R版本升级后如何升级原先的包
R的版本更迭之后,可以把老R包复制到新版本的library目录下,然后运行update.packages(checkBuilt=TRUE, ask=FALSE)
删除已安装的包
console下remove.packages(pkgs_name)
命令行下R CMD REMOVE chipchip
数据操作
如何取子集
逻辑向量
1 | #这将创建(或重建)一个含x 中非缺省且次序不变的元素的对象y。注意,如果x |
1 | #将创建一个对象z 并且把向量x+1 的值赋给它,其中要求x 中对应的元素既非缺 |
正整数向量
1 | #选择x 的前10个元素(我们假定length(x) 长度不小于10) |
1 | #产生一个长度为16,由"x", "y", "y", "x" 重复4次而构成的向量。 |
负整数向量
1 | #将x 除开始五个元素外的其他元素都赋给y |
字符串向量
这可能仅仅用于一个对象可以用names 属性来识别它的元素。这种情况下,名字向量的子向量可以像上面第二条提到的正整数标签一样使用。
1 | > fruit <- c(5, 10, 1, 20) |
移除某行(列) 数据
使用函数下标
1 | x <- data . frame (matrix ( 1 : 3 0 , nrow = 5 , byrow = T) ) |
移除有NA或者NAN的行
na.omit(x)->x
如何根据共有的列将两个数据框合并
我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同。处理的办法就是使用merge(x, y ,by.x = ,by.y = ,all = )
函数。
矩阵或数据框合并
列合并cbind()
和行合并rbind()
字符串处理相关函数
分割字符串strsplit
字符串连接paste
计算字符串的字符数nchar
字符串截取或替换substr(x, start, stop)
字符串大小写转换tolower(x)
toupper(x)
字符完全匹配grep()
字符不完全匹配agrep()
字符替换gsub()
文件读写
读压缩文件
read.table(gzfile("GSM1085211_mC_calls_Bor_4_bud.tsv.gz"))->x
线性回归
一元线性回归
1 | lm(y ~ 1+x)-> lm |
广义线性回归
glm()
R作图相关
分割画布
1 | layout(matrix(c(1,2),2,1)) |
add smooth line
lines(smooth.spline(plot.x, plot.y, spar=0.3))
画散点图
数据多时用smoothScatter(x,y)
数据少时可用plot(x,y, col = densCols(x,y), pch=20)
调整坐标轴刻度间隔
R下画图,常常需要针对特定的要求标识刻度,调整刻度的密度。实际上可以用一个简单的参数来控制:xaxp
具体做法如下:
在作图函数如plot中,添加xaxp=c(33900000,34100000,10000)
,依次为最小刻度值,最大刻度值,刻度单位间隔值。