搜索
查看: 2154|回复: 0

[basic] 用formatR进行代码格式化

[复制链接]

7

主题

32

帖子

216

积分

中级会员

Rank: 3Rank: 3

积分
216
发表于 2017-5-8 20:22:40 | 显示全部楼层 |阅读模式
用formatR进行代码格式化
formatR是个代码格式化化的R包,他能自动代码的空格缩进等,使代码根据有可读性。
formatR有多种用法,这里先展示作用效果:
示例代码原来的样子如下:[mw_shl_code=applescript,true]示例代码原来的样子如下:这是规范的格式
probeid2geneid=function(probeid_exp1,probeid_geneid1){
as.matrix(probeid_exp1)->probeid_exp
as.matrix(probeid_geneid1)->probeid_geneid
pid.exp=probeid_exp[,1]
index=match(probeid_geneid[,1],pid.exp)
probeid_exp=probeid_exp[index,]
raw.geneid=as.numeric(as.matrix(probeid_geneid[,2]))
drop.index=which(is.na(raw.geneid))
if(length(drop.index)>0)
{
raw.exp=probeid_exp[,-1]
mode(raw.exp)="numeric"
geneid=raw.geneid[-drop.index]
exp.matrix=raw.exp[-drop.index,]
}
else
{
raw.exp=probeid_exp[,-1];
mode(raw.exp)="numeric";
geneid=raw.geneid;
exp.matrix=raw.exp;
}
geneidfactor=factor(geneid)
exp1.matrix=apply(exp.matrix,2,function(x) tapply(x,geneidfactor,mean))

}[/mw_shl_code]

这是规范的格式
经过个格式化后张下面那样
[mw_shl_code=applescript,true]probeid2geneid = function(probeid_exp1, probeid_geneid1) {
  probeid_exp <- as.matrix(probeid_exp1)
  probeid_geneid <- as.matrix(probeid_geneid1)
  pid.exp = probeid_exp[, 1]
  index = match(probeid_geneid[, 1], pid.exp)
  probeid_exp = probeid_exp[index, ]
  raw.geneid = as.numeric(as.matrix(probeid_geneid[, 2]))
  drop.index = which(is.na(raw.geneid))
  if (length(drop.index) > 0) {
    raw.exp = probeid_exp[, -1]
    mode(raw.exp) = "numeric"
    geneid = raw.geneid[-drop.index]
    exp.matrix = raw.exp[-drop.index, ]
  } else {
    raw.exp = probeid_exp[, -1]
    mode(raw.exp) = "numeric"
    geneid = raw.geneid
    exp.matrix = raw.exp
  }
  geneidfactor = factor(geneid)
  exp1.matrix = apply(exp.matrix, 2, function(x) tapply(x, geneidfactor, mean))
  
}[/mw_shl_code]
用formatR格式化代码,代码颜值马上就有些提升了。
formatR很多种用法,这里只展示两种。
1.载入包后,直接在R的命令行窗口输入tidy_app() ,该命令就会调用一个shiny程序,自动在你的浏览器里打开一个界面模式下的格式化工具。
2.用法二:先复制你需要格式化的代码,在R命令行窗口输入tidy_source(),该函数就会自动输出格式化后的代码。
3.它也可以实现对某个目录下的R代码批量格式化,具体请看formatR的帮助文档详情请看链接



欢迎关注https://www.jianshu.com/u/4f5e357a6212
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2020-3-31 09:27 , Processed in 0.020604 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.