1、创建项目工作目录

mkdir /home/sesa464509/R/demo
cd /home/sesa464509/R/demo
vi sayHello.R
------------------

sayHello<-function(name) {

print(paste("Hello",name))
  }

------------------

2、用package.skelelon()函数,生成sayHello项目的骨架

R
> rm(list=ls())
> setwd("/home/sesa464509/R/demo")
> package.skeleton(name="sayHello",code_files="/home/sesa464509/R/demo/sayHello.R")
> q()
$ cd /home/sesa464509/R/demo
$ ls -l
$ ls sayHello
$ vi sayHello/DESCRIPTION #定义了整个项目的配置信息
--------------------------

Package: sayHello      #项目名(包名)
  Type: Package          #项目类型
  Title: R package demo for sayHello    #项目标题
  Version: 1.0           #项目版本号
  Date: 2017-07-25       #项目创建日期
  Author: Fei Meng       #项目作者
  Maintainer: Fei Meng <fly.mengfei@gmail.com>      #主要贡献者
  Description: This package provides a package demo    #项目详细描述
  License: GPL-3         #项目的发布协议

--------------------------

$ vi sayHello/NAMESPACE

-------------------------

 export(sayHello)

-------------------------

$ vi sayHello/man/sayHello.Rd

-------------------------

\name{sayHello}
  \alias{sayHello}
  \title{a sayHello function demo}
  \description{
  a sayHello function demo
  }
  \usage{
  sayHello(name)
  }
  \arguments{
  \item{name}{a word}
  }
  \details{
  nothing
  }
  \value{
  no return
  }
  \references{
  nothing
  }
  \author{
  Fei Meng
  }
  \note{
  nothing
  }
  \seealso{
  nothing
  }
  \examples{
  function (name)
  {
  print(paste("Hello", name))
  }
  }
  \keyword{ sayHello }

-------------------------

$ rm sayHello/Read-and-delete-me       #删除可忽略的文件,否则check过程会出现警告

$ rm sayHello/man/sayHello-package.Rd

$ R CMD build sayHello          #执行打包命令

~/R/demo$ R CMD INSTALL sayHello_1.0.tar.gz      #需要在demo目录里安装sayHello包

~/R/demo$ cd

~$ ls /home/sesa464509/R/x86_64-pc-linux-gnu-library/3.3     #查看R的安装目录,找到sayHello

demo/sayHello/下文件及目录解释:

DESCRIPTION文件:项目描述文件,用于设置项目的全局的配置

NAMESPACE文件:项目命名空间,用于设置项目输入输出函数

Read-and-delete-me文件:说明文件,可以删除

man目录:存放函数的帮助文件

R目录:存放源代码文件的目录

man/sayHello.Rd:sayHello函数的帮助文件,LaTex语法,用来生成PDF文档

man/sayHello-package.Rd:sayHello包的帮助文件,可以删除

3、检查R包,发布到CRAN上

先安装LaTex

sudo apt-get install texlive-full
#安装LaTex
R CMD check sayHello_1.0.tar.gz
#执行check检查

卸载R包

$ R CMD REMOVE sayHello
#命令行卸载R包
> remove.packages("sayHello")
#函数卸载R包

4、Rstudio中开发R包

File -> New project -> New directory -> R package

编辑文件跟在linux一样

点击Rstudio的Build -> Build&Reload

然后点击check

创建Rdemo项目的更多相关文章

  1. 创建maven项目(cmd 命令)

    2016五月 22 原 创建maven项目(cmd 命令) 分类:maven (994) (0) 1.普通方式创建 1)进入cmd窗口执行 mvn archetype:generate 2) 光标停止 ...

  2. (八)Eclipse创建Maven项目运行mvn命令

    1.Eclipse创建Maven项目 使用Eclipse创建一个Maven项目非常的简单,选择菜单项File>New>Other(也可以在项目结构空白处右击鼠标键),在弹出的对话框中选择M ...

  3. Jenkins创建Maven项目及SSH部署

    前面我们已经安装了Jenkins的环境,以及配置好了jdk和maven.下面我们来看如何通过Jenkins将svn的项目进行打包和部署. 创建MAVEN项目 1.点击新建,输入项目名,选择" ...

  4. 终端指令操作创建Django项目

    需求:通过Django创建一个用户表和权限表. 用户表包括:用户名,邮箱,密码,管理权限. 权限表包括:普通用户,管理用户,超级用户. 权限表和用户表有一对多的关系,即用户表中的每条数据对应权限表中的 ...

  5. VS自定义项目模板:[2]创建VSIX项目模板扩展

    VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...

  6. 用Kotlin开发Android应用(II):创建新项目

    这是关于Kotlin的第二篇.各位高手发现问题,请继续“拍砖”. 原文标题:Kotlin for Android(II): Create a new project 原文链接:http://anton ...

  7. Java开发环境的搭建以及使用eclipse从头一步步创建java项目

    一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可..http://www.orac ...

  8. Eclipse+Maven创建webapp项目<一>(转)

    还在为jar下载而烦恼吗?还在为jar依赖关系而烦恼吗?还在为jar冲突而烦恼吗?强大的maven项目管理工具来拯救你们呢?自动下载jar,自动下载jar依赖包.你什么都不用做,只需要在中央仓库中co ...

  9. Eclipse+maven创建webapp项目<二>(转)

    原文地址:http://www.cnblogs.com/candle806/p/3439469.html 1.开启eclipse,右键new-->other,如下图找到maven project ...

随机推荐

  1. ffmpeg architecture(下)

    ffmpeg architecture(下) 第3章-转码 TLDR:给我看代码和执行. $ make run_transcoding 我们将跳过一些细节,但是请放心:源代码可在github上找到. ...

  2. 通过Dapr实现一个简单的基于.net的微服务电商系统(十七)——服务保护之动态配置与热重载

    在上一篇文章里,我们通过注入sentinel component到apigateway实现了对下游服务的保护,不过受限于目前变更component需要人工的重新注入配置以及重启应用更新componen ...

  3. 【NX二次开发】Block UI 从列表选择部件

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  4. Servlet--核心内容汇总

    Servlet汇总 因为看公司代码,有个cookie+jwt.Token登录验证接口,于是回顾下servlet.cookie.session.前后端分离restful.jwt.token相关内容.虽然 ...

  5. CMD批处理(3)——批处理选择语句结构

    if 的用法详解 命令格式1:if [NOT] ERRORLEVEL number command 命令格式2:if [NOT] string1==string2 command 命令格式3:if [ ...

  6. 《MySQL面试小抄》索引考点二面总结

    <MySQL面试小抄>索引考点二面总结 我是肥哥,一名不专业的面试官! 我是囧囧,一名积极找工作的小菜鸟! 囧囧表示:小白面试最怕的就是面试官问的知识点太笼统,自己无法快速定位到关键问题点 ...

  7. 02 SVN 与 Git 的优缺点

    上一篇博客大致聊了聊关于版本控制系统的周边,这一篇我们就来继续唠唠作为近年来最受欢迎的两个版本控制系统的优缺点吧. 聊优缺点之前,先简单了解一下这两个这两个版本控制系统好了: 关于 SVN SVN 概 ...

  8. kustomize简单使用

    1.背景 在Kubernetes v1.14版本的发布说明中,kustomize 成为了 kubectl 内置的子命令,并说明了 kustomize 使用 Kubernetes 原生概念帮助用户创作并 ...

  9. 『动善时』JMeter基础 — 52、使用JMeter测试Dubbo接口

    目录 1.Dubbo介绍 2.准备测试Dubbo接口的环境 3.Dubbo Sample界面详解 4.Dubbo Sample组件的使用 (1)测试计划内包含的元件 (2)使用zookeeper协议请 ...

  10. 8.QSharedPointer

    QSharedPointer 是一个共享指针, 同时是引用计数型的智能指针 ,也就是说,QSharedPointer可以被自由地拷贝和赋值,在任意的地方共享它. QSharedPointer内部会对拥 ...