1.简介

通常在R中从来进行分析和展现的数据都是以基本的格式保存的,如.csv或者.Rdata,然后使用.Rmd文件来进行分析的呈现。通过这个方式,分析师不仅可以呈现他们的统计分析的结果,还可以直接生成pdf和html文件,节省了大量的时间。但是,当你想要给其他人参阅你的文档的时候,你就需要编译.Rmd文件,并且必须要有以下两个文件:

  • the data
  • the knitted .Rmd

如果可以嵌入分析到数据中并且只需发送一个文件,则会让人感到非常更加简单。而linpe包(作者:Andrea Spanò)实现了该功能,其实现功能描述如下:

简而言之,linpe包为您提供了一套简介的功能,你可以将.Rmd分析作为一个属性嵌入到数据中,然后将结果存为一个对象到一个单一的文件中,发送该文件给需要的用户,该用户可以使用该文件将.Rmd渲染为.pdf或者.html文件。此外,如果接受该文件的人想添加或修改内容,linpe包允许提取并且可以编辑.Rmd文件。

2.如何使用?

2.1创建.Rmd文件

首先,假设您完成了一个分析并且存为.Rmd文件,例如下面的test-linpe.Rmd文件:

---
title: "Test linpe"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r, message = FALSE}
require(dplyr)
require(ggplot2)
```

Do something

```{r}
mtcars %>%
 tbl_df() %>%
 group_by(cyl) %>%
 summarise(n = n(), mean_mpg = mean(mpg), sd_mpg = sd(mpg))
```

Plot something

```{r}
ggplot(mtcars, aes(disp, mpg)) + geom_point()
```

其显示为HTML文件后为:

2.2安装linpe包

library(devtools)
devtools::install_github('quantide/linpe')
library(linpe)

2.3链接数据

require(linpe)
# Link .Rmd to the data using linpe
mtcars_linpe <- link(mtcars, file = "test-linpe.Rmd")

2.4存储为.Rdata文件

# Save the linked dataset as an Rdata file
save(mtcars_linpe, file = "mtcars-linpe.Rdata"  )

2.5加载.Rdata文件

# Reload
load("mtcars-linpe.Rdata")

2.6查询是否为linked数据的linpe对象

# Check name of linpes
linpe(mtcars_linpe)

##########################
## Output
##########################

# [1] "test-linpe"

2.7渲染linpe对象

# Render the linpe
perform(mtcars_linpe, linpe = "test-linpe")

2.8提取可编辑的原始.Rmd文件

# Display .Rmd linked to the linpe
display(mtcars_linpe, linpe = "test-linpe")

2.9从data.frame中移除linpe属性

mtcars_linpe <- unlink (mtcars_linpe, linpe = "test-linpe")
linpe(mtcars_linpe)

##########################
## Output
##########################

# No limpe in mtcars_linpe 
# character(0)

3.linpe包函数介绍

link

link(data, file, linpe = NULL)

data    一个数据框对象 指.Rmd文件中使用的数据集
file    字符串向量,指向一个.Rmd文件位置
linpe   字符串向量,提供了linpe(分析)的名称,当没有指定的话,使用默认值设置为NULL,则该linpe名称由file参数指定的文件名推导出,即去掉文件类型后缀(.Rmd)

示例:

file <- paste(find.package("linpe"), "rmd/test-linpe.rmd", sep = "/")
# analysis is saved with default name
mtcars_linpe <- link (mtcars, file = file)
attr(mtcars_linpe, "test-linpe")

# analysis is saved with specific name
mtcars_linpe <- link (mtcars, file, linpe = "this-linpe")
attr(mtcars_linpe, "this-linpe")

unlink

unlink(data, linpe)

data   一个数据框对象 指.Rmd文件中使用的数据集
linpe  字符串向量,提供了linpe(分析)的名称

file <- paste(find.package("linpe"), "rmd/test-linpe.rmd", sep = "/")
mtcars_linpe <- link (mtcars, file = file)
linpe(mtcars_linpe)
mtcars_linpe <- unlink (mtcars_linpe, linpe = "test-linpe")
linpe(mtcars_linpe)

display

display(data, linpe)

data   一个数据框对象 指.Rmd文件中使用的数据集
linpe  字符串向量,提供了linpe(分析)的名称

返回值:
invisible(NULL) and, as side effect, opens the '.rmd' linked to the linpe

示例:

data(mtcars_linpe)
display(mtcars_linpe, linpe = "test-linpe")

linpe

linpe(data)

data   一个数据框对象 指.Rmd文件中使用的数据集

返回值:
list of linpes associated to data

示例:
data(mtcars_linpe)
linpe(mtcars_linpe)
linpe(mtcars)

perform

Perform(data, linpe, ...)

data   一个数据框对象 指.Rmd文件中使用的数据集
linpe  字符串向量,提供了linpe(分析)的名称
...    any parameter to be passed to function rmarkdown::render

返回值:
invisible(NULL) and, as side effect, renders the '.rmd' file corrensponding to the analysis and display it in the default html viewer

示例:
data(mtcars_linpe)
perform(mtcars_linpe, "test-linpe")

4.英文原文

http://www.quantide.com/linpe-make-sending-receiving-data-analysis-faster-easier/

linpe包-让发送和接收数据分析更快和更容易的更多相关文章

  1. 新型序列化类库MessagePack,比JSON更快、更小的格式

    MessagePack is an efficient binary serialization format. It lets you exchange data among multiple la ...

  2. [转帖]传输层安全协议TLS 1.3 RFC 8446使互联网更快、更安全

    传输层安全协议TLS 1.3 RFC 8446使互联网更快.更安全 2018-08-12 11:38:19作者:LINUX人稿源:开源社区 https://ywnz.com/linuxyffq/261 ...

  3. javaCV开发详解之技术杂烩:javaCV能帮我们做什么?能实现什么功能?ffmpeg和openCV能实现功能,javaCV如何做到更快、更简单的实现相应的功能?等等一堆实用话题

    前言: 该篇文章旨在帮助刚接触javaCV的盆友系统的认识音视频.javaCV.图像处理相关的体系知识和一些实用的知识. 序: javaCV早期因为内置了openCV库,所以常用来做图像识别应用,现在 ...

  4. vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松

    vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...

  5. SOLOv 2:实例分割(动态、更快、更强)

    SOLOv 2:实例分割(动态.更快.更强) SOLOv2:  Dynamic, Faster and Stronger 论文链接: https://arxiv.org/pdf/2003.10152. ...

  6. 海量数据分析更快、更稳、更准。GaussDB(for MySQL) HTAP只读分析特性详解

    本文作者康祥,华为云数据库内核开发工程师,研究生阶段主要从事SPARQL查询优化相关工作.目前在华为公司参与华为云GaussDB(for MySQL) HTAP只读内核功能设计和研发. 1. 引言 H ...

  7. 只为更快、更省、更安全的 Azure CDN

    来来来!小编今天要公布一件大事啦: 经过最近一次更新,Azure CDN 高级版服务 HTTPS SSL 证书的申请方式有所改进啦,除了现有的 Azure CDN 代为申请证书外,还支持用户自己申请的 ...

  8. ZeroMQ一个更小、更快、更简单的智能传输层协议

    这个githube上的教程是非常好的,是个中文翻译,大家直接学这个就行 https://github.com/anjuke/zguide-cn/tree/master/bin 原文地址: https: ...

  9. 更快、更强——解析Hadoop新一代MapReduce框架Yarn(CSDN)

    摘要:本文介绍了Hadoop 自0.23.0版本后新的MapReduce框架(Yarn)原理.优势.运作机制和配置方法等:着重介绍新的Yarn框架相对于原框架的差异及改进. 编者按:对于业界的大数据存 ...

随机推荐

  1. 码云以及git使用

    码云的使用方法以及git的连用 创建公钥的方法 打开码云,点击个人资料---->SSH公钥---->点击怎样生成公钥 SSH Keys ssh keys可以让你在你的电脑和Git@OSC知 ...

  2. Linux学习之六--unZip/Zip的安装及使用

    Linux系统没有自带的压缩解压工具:需要我们自己安装:当用到zip或者unzip如果没有安装就会出现unzip: Command Not Found 或 zip: Command Not Found ...

  3. $q -- AngularJS中的服务(理解)

      描述 译者注: 看到了一篇非常好的文章,如果你有兴趣,可以查看: Promises与Javascript异步编程 , 里面对Promises规范和使用情景,好处讲的非常好透彻,个人觉得简单易懂. ...

  4. SDN/NFV运营商商业化部署

    三大运营商发布未来网络架构,并逐步加快SDN/NFV商业化部署的步伐.中国联通发布其新一代网络架构<CUBE-Net 2.0白皮书>,并与20多家合作伙伴共同启动了“新一代网络”合作研发计 ...

  5. c#泛型的使用[转]

    在2005年底微软公司正式发布了C# 2.0,与C# 1.x相比,新版本增加了很多新特性,其中最重要的是对泛型的支持.通过泛型,我们可以定义类型安全的数据结构,而无需使用实际的数据类型.这能显著提高性 ...

  6. C#和.net的版本

    C#1.0:OOP和CTS(delegate)C#2.0:泛型.分部类.静态类.迭代器.匿名方法.委托的协变和逆变.属性访问器可以被单独设置访问级别.可空类型.??操作符C# 3.0:Linq.lam ...

  7. iOS10 推送必看(基础篇)

    虽然这篇文章比较长,也不好理解,但是还是建议大家收藏,以后用到的时候,可以看看,有耐心的还是读一读. 这篇文章开始,我会跟大家好好讲讲,苹果新发布的iOS10的所有通知类. 一.创建本地通知事例详解: ...

  8. svn上传工程之后下载,打开下载之后的工程缺少文件

    当我们把iOS的工程上传到SVN中,当我们再从SVN中下载下来,就会出现错误,这是什么原因呢?我这里出现的错误是找不到文件,后来知道原来是被屏蔽掉了,就是上传的时候不上传某个类型的文件.例如我出错就是 ...

  9. JS身份证号码校验

    var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 加权因子 var ValideCode = [ 1, 0 ...

  10. java十进制转十六进制

    package com.ds.detect; import java.util.Scanner; public class ToHEX{ public static void main(String[ ...