大数跨境
0
0

人人都能掌握的R包制作过程

人人都能掌握的R包制作过程 小明的数据分析笔记本
2021-09-16
2
导读:健康贴士本节来介绍如何封装函数制作R包,非常的简单粗暴;从此每个小伙伴都可以制作一个自己专属的R包;扫描文末

健康贴士

本节来介绍如何封装函数制作R包,非常的简单粗暴;从此每个小伙伴都可以制作一个自己专属的R包;扫描文末二维码加入我的交流群更多精彩内容为您而准备

第一步(编写函数)

下面这段代码定义了一个颜色卡与2个函数,这就是我们这个简单R包的主要内容,将其保存命名为work.R

colors <- c("#E41A1C","#1E90FF","#FF8C00","#4DAF4A","#984EA3",
            "#40E0D0","#FFC0CB","#00BFFF","#FFDEAD","#90EE90",
            "#EE82EE","#00FFFF","#F0A3FF""#0075DC"
            "#993F00","#4C005C","#2BCE48","#FFCC99",
            "#808080","#94FFB5","#8F7C00","#9DCC00",
            "#C20088","#003380","#FFA405","#FFA8BB",
            "#426600","#FF0010","#5EF1F2","#00998F",
            "#740AFF","#990000","#FFFF00")

otu_filter <- function(path) {
  group <- read.delim("group.xls")
  data <- path %>%
    read.delim(check.names = FALSE,row.names = 1)
  data2 <- data %>%
    mutate(sum = rowSums(.), persent = sum / sum(sum) * 100, 
           sum = NULL,) %>%
    rbind(filter(., persent < 1) %>% colSums()) %>%
    mutate(OTU = c(data %>% rownames(), "others"))
  filter(data2[1:(nrow(data2) - 1),], persent > 1) %>%
    rbind(data2[nrow(data2),]) %>%
    select(ncol(.), 1:(ncol(.) - 2)) %>%
    set_rownames(seq_len(nrow(.))) %>% 
    pivot_longer(- OTU) %>% rename(.,sample=name) %>%
    inner_join(.,group,by="sample") %>% 
    return()
}

ggbar <- function(data,mapping) {
  ggplot(data,mapping=aes(sample,value,fill=OTU))+
    geom_bar(stat="identity",position="fill")+
    facet_grid(. ~ group,scales = "free",space="free_x")+
    scale_fill_manual(values = colors)+
    scale_y_continuous(expand=c(0,0))+theme_bw()+
    labs(x=NULL,y=NULL,fill="")+
    theme(panel.spacing.x = unit(0.03,"cm"),
          axis.text.x=element_text(angle=0,size=10,
                                   vjust = 0.5,hjust=0.5),
          axis.text.y=element_text(size=10),
          plot.margin=unit(c(0.5,0.5,0.5,0.5),units=,"cm"))
}

第二步(构建R包)

打开Rstudio使用R自带的函数构建R包,name命名包名,code_files写入R脚本路径,执行下面的代码 (注:写入自己的路径)

package.skeleton(name="ggtool",code_files="work.R")

可以看到多了一个ggtool文件夹,这就是我们构建的R包

文件夹内包含如下信息,里面可以修改作者信息等一系列内容,可以自己多看看

  • 注:此处要修改man文件夹里面Rd文件的title,一定要修改否则打包会不成功的

第三步(封装R包)

打开终端执行如下命令即可,执行完可以看到出来一个压缩包,这就是我们要的R包

R CMD build ggtool 

第四步(安装R包)

本地安装即可

第五步(数据测试)

genus.xls & group.xls为我们的测试文件

执行如下命令即可生成下图

library(tidyverse)
library(magrittr)
library(ggtool)

otu_filter("genus.xls") %>% ggbar()

后台回复20210822获取2个测试数据


小编微信


关注下方公众号,获取更多优质资源,如需要加入微信交流群,请在菜单栏处添加作者微信,即可邀您进群

【声明】内容源于网络
0
0
小明的数据分析笔记本
分享R语言和python在生物信息领域做数据分析和数据可视化的简单小例子;偶尔会分享一些组学数据处理相关的内容
内容 971
粉丝 0
小明的数据分析笔记本 分享R语言和python在生物信息领域做数据分析和数据可视化的简单小例子;偶尔会分享一些组学数据处理相关的内容
总阅读218
粉丝0
内容971