• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    教学以及管理操作教程

    教学以及管理操作教程

    ¥1,000.00 ¥100.00
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      教学以及管理操作教程

      教学以及管理操作教程

      ¥1,000.00 ¥100.00
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      生信星球

      • 首页
      • 博客
      • 生信星球
      • 我写了一个最简单的R包,你学吗

      我写了一个最简单的R包,你学吗

      • 发布者 weinfoeditor
      • 分类 生信星球
      • 日期 2019年10月19日
      测试开头


       今天是生信星球陪你的第471天


         大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~

         就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~

         这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

      花花写于2019-10-19

      前情回顾

      10月6号开始学+考科三,总共四天半(周日到周四),然后飞南京巡讲(周五到周一),在南京和小外甥玩了三天(周二到周四),小姨真难当啊,没有睡觉自由和起床自由。昨天周五高铁回烟台老家,今天终于可以开工,公众号恢复更新,我今天还给豆豆交了10块钱保证金,保证今天写出一篇,果然money就是生产力,哈哈。

      我要学R包开发了,一起吗

      其实就是新建一个Rpackage空壳子,知道应该在/R文件夹下的脚本里写函数。

      1.写个函数进去

      然后在R/下面的hello.R写进去一个函数:
      以前的需求,统计数据框每列的重复值数量。

      dumd <- function(x){
        if(!require(tidyverse))install.packages("tidyverse")
        suppressMessages(library(tidyverse))
        colname <- vector("character")
        count <- vector("integer")
        for(i in 1:ncol(x)){
          colname[i] = colnames(x)[[i]]
          count[i]=nrow(x[!duplicated(x[,i]),])
        }
        df <- tibble(colname,count) %>%
          arrange(desc(count))
        print(df)
      }

      别忘了保存这个脚本。
      当然,一个好的R包后面还有很多工序,我只是想搞出一个最小可用的包,且能够在其他电脑上面使用。

      2.生成tar.gz格式的压缩包

      用devtools::build()这个命令即可生成R包。

      devtools::build()
      # ✔  checking for file ‘/Users/kingjie/Library/Mobile Documents/com~apple~CloudDocs/0.learn/bioinfor/bioinfor/DESCRIPTION’ ...
      # ─  preparing ‘bioinfor’:
      #   ✔  checking DESCRIPTION meta-information
      # ─  checking for LF line-endings in source and make files and shell scripts
      # ─  checking for empty or unneeded directories
      # Removed empty directory ‘bioinfor/tests/testthat’
      # ─  building ‘bioinfor_0.1.0.tar.gz’
      # 
      # [1] "/Users/kingjie/Library/Mobile Documents/com~apple~CloudDocs/0.learn/bioinfor/bioinfor_0.1.0.tar.gz"

      看最后,那个叫bioinfor_0.1.0.tar.gz的文件就是做出来的R包了!
      由于暂未成型,没有托管到CRAN或者github,所以还不能直接用install.packages等命令来安装。
      但我jio得既然是tar.gz,那就应该可以移植到其他电脑来用吧!试了直接解压,报错了,这就说明肯定有其他方法。

      3.怎么在其他电脑上面安装和使用这个包呢?

      用网盘传过来压缩包,我将它保存在了D:/rpackage。

      搜索是个好习惯

      我写了一个最简单的R包,你学吗

      简而言之,就是需要Rtools,然后用cmd命令安装就行,命令是:

      Rcmd.exe INSTALL "D:/rpackage/bioinfor_0.1.0.tar.gz"

      Rstudio自带终端,l就不需要cmd了,注意,是在控制台面板上面的terminal:

      我写了一个最简单的R包,你学吗


      一下就搞定!


      4.安装好了,能直接用吗?

      不能,要library()啊~

      library(bioinfor)

      library 没有报错,那就是安装成功

      5.测试一下包里的函数

      dumd(iris)
      # Loading required package: tidyverse
      # -- Attaching packages --------------------------------------- tidyverse 1.2.1 --
      #   √ ggplot2 3.2.1     √ purrr   0.3.2
      # √ tibble  2.1.3     √ dplyr   0.8.3
      # √ tidyr   1.0.0     √ stringr 1.4.0
      # √ readr   1.3.1     √ forcats 0.4.0
      # -- Conflicts ------------------------------------------ tidyverse_conflicts() --
      #   x dplyr::filter() masks stats::filter()
      # x dplyr::lag()    masks stats::lag()
      # # A tibble: 5 x 2
      # colname      count
      # <chr>        <int>
      #   1 Petal.Length    43
      # 2 Sepal.Length    35
      # 3 Sepal.Width     23
      # 4 Petal.Width     22
      # 5 Species          3

      出结果了!那就是成功了哈哈。
      如果你想试一下安装我写的小辣鸡包0.1.0版本,那就去后台聊天窗口回复“我要R包”,我把小压缩包发给你,只有1k大小,里面就一个函数dumd,惊险,刺激,不过我推荐自己对照本文自己搞一下!

      边学边写的,如果有什么不妥请前辈指出。请豆豆退给我保证金咯。

      插我们公众号唯一一个小广告!

      生信零基础入门学习小组长期报名中

      再给生信技能树打个call!

      全国巡讲第17-18站(南京和南宁线下培训)

      全球公益巡讲、招学徒

      B站公益74小时生信工程师教学视频合辑



      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoeditor

      上一篇文章

      【r<-统计|绘图】使用R进行生存分析-一文打尽
      2019年10月19日

      下一篇文章

      R-同一数据多变量分组的boxplot?
      2019年10月21日

      你可能也喜欢

      8-1651673488
      生信零基础入门学习小组长期报名中(2022仍继续)
      7 4月, 2022
      2-1651673738
      简化版的ROC曲线
      21 2月, 2022
      8-1651674718
      支持向量机模型
      19 11月, 2021

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?