吐槽 获取链接 Facebook X Pinterest 电子邮件 其他应用 八月 28, 2024 呃啊bioconductor的GRanges包里,setdiff本来是不会去reduce区域的,不知道哪个版本给改成会合并的了,真的服了搞得我一堆核心函数要改。服了我自己写个函数处理吧 获取链接 Facebook X Pinterest 电子邮件 其他应用 评论
R包编写详细教程 一月 10, 2019 最近在写一个R包,遇到了很多的坑,网上几乎没有一个教程能涵盖我遇到的所有问题,因此决定写一个教程。 当然,这不是说网上的教程都不好,网上那些教程都是写一个非常简单的示例,让你很快能够建立一个包,但是我们写包通常不是为了练练手,而是真的有开发的需求的,涉及到的点要比网上的示例和教程都多得多,动不动就会踩坑。所以决定把我踩到的坑都记录下来,方便自己也方便别人。 本文使用的环境是windows10系统Rstudio IDE,因此在写包的时候,需要先安装Rtools才能打包,如果要生成manual.pdf,同时还需要安装Latex的排版引擎,比如 MiKTeX ,本文不详述。还有如果你想写一个使用手册,最好使用RMarkdown,用它可以写出非常漂亮的使用手册,windows系统在Rstudio里可以通过install.packages('rmarkdown')直接安装,linux系统不知道如何安装可以看 Linux配置R markdown 。 本人是第一次写包,有些问题虽然各种查资料解决了,但是可能也没有真正的解决,欢迎各位在评论里批评指正。 写一个R包,大概要经过以下几个步骤: 1)准备一个R包,含有一些必需文件和文件夹。 2)准备R包需要用到的函数和测试数据,并写函数和测试数据的注释。 3)将函数封装成一个包。 4)写说明书。(非必须) 5)将R包上传到github,方便修改和维护。(非必须) 6)补充:遇到问题 以下介绍各个步骤的要点: 1、准备一个R包 在介绍这个之前,需要先了解一下 R包的结构。 我们可以通过Rstudio来获得一个基本的R包模板,模板里就是R包的结构和必需内容。通过Rstudio→File→New Project→New Directory→R package,填写R包名称和创建路径,获得一个名为“myPackage”的R包,里面有以下的文件或文件夹,是一个R包必须有的: myPackage(见图1) | ------ man文件夹:用于存放.Rd文件的文件夹,里面有一个示例文件hello.Rd。 | ------ R文件夹:用于存放R函数的文件夹,里面有一个示例文件hello.R。 | -... 阅读全文
Hadley Wickham的R语言编写规范 十二月 23, 2021 最近要重写16年的R脚本,一查R语言编写规范(多源自谷歌),发现中文版和英文版的居然是相反的😂当年的规范也和现在不太一样了,为了解决其他语言用户认为的R语言太随便难度懂的问题,最近几年R编写规范更加趋向于和其他语言一致,而中文翻译的可能都是很多年前的规范,因而有所出入。 所以本文翻译自R语言大神Hadley Wickham整理的 tidyverse的R语言编写风格指南 (注: 非直译,有意译、补充和省略),希望能给中文用户提供一些帮助。当然,建议有条件的朋友直接阅读一手英文版,毕竟翻译水平有限,而且大神的风趣幽默俺是翻不出灵魂的~ 1 文件名 Files 1.1 R脚本的命名 Names 文件名最好用“.R”结尾,文件名 尽量简洁且见名知意, 用字母,数字,英文连字符“-”和 英文下划线 “_”组成。 # Good fit_models.R utility_functions.R # Bad fit models.R foo.r stuff.r 如果需要按照顺序运行R脚本(比如写shiny app,app会自动按照R文件夹里的文件顺序运行脚本),可以加数字做前缀。请注意文件名不要区分大小写,最好统一使用小写字母,因为有些系统是不区分大小写的。 00_download.R 01_explore.R ... 09_model.R 10_visualize.R 1.2 R脚本内部结构 Internal structure 在注释里使用一串英文连字符“-”或者“=”来区分不同功能的代码块,Rstudio可以识别这种注释,可扩展或隐藏注释之间的代码块,方便阅读。 # Load data --------------------------- # Plot data --------------------------- 此外,如果使用到R包,建议在文件的起始使用 library() 一次性导入,不建议把导入包的命令散布在不同的文件里或者加载隐藏的环境变量如 .Rprofile 进行包的加载。 2 R语法 Syntax 2.1 对象名 Object names 变量名和函数名均建议统一使用小写字母、数字、英... 阅读全文
RMarkdown中文报错的问题【解决】 八月 07, 2018 今天学习RMarkdown(Win10笔电),结果因为里面有中文就报错了。我试了yaml的header有中文和正文有中文都会报错,搜索看到文件存放路径含中文也会报错。 解决 1)查询语言设置是否中文 Sys.getlocale() [1] "LC_COLLATE=Chinese (Simplified)_China.936;LC_CTYPE=Chinese (Simplified)_China.936;LC_MONETARY=Chinese (Simplified)_China.936;LC_NUMERIC=C;LC_TIME=Chinese (Simplified)_China.936" 显然不是语言设置的问题 2)根据搜索到的结果,安装了rticles包(建议直接从github安装) 顺便:devtools使用代理需要设置: library(httr) set_config( use_proxy(url="127.0.0.1", port=1080) #使用本机代理 ) 但是使用Ctex document模板在kniter渲染的时候还是报错了 3)根据Yihui Xie的建议,更新以下两个包到最新版本 devtools::install_github(c('rstudio/rmarkdown', 'yihui/tinytex')) tinytex::install_tinytex() 更新后重启R,用以下命令确认是否安装上tinytex tinytex:::is_tinytex() 然后就可以正确输出中文了。 *********************追加******************** rmarkdown::render('1.Rmd') 中文乱码问题 由于上述问题解决之后,kniter渲染html已经能正常显示中文,所以就是Rmd文件编码的问题。把Rmd文件另存为GB2312编码格式,就能正常显示中文了。 后来查到Yihui Xie说: 如果文件编码是 UTF-8,那么需要 rmarkdown::render('你的文件.Rmd', encoding = 'UTF... 阅读全文
评论
发表评论