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. 通过openswan基于Azure平台搭建VPN server

    用过Azure的读者都知道,Vnet一直是Azure比较自豪的地方,尤其是VPN,Azure提供了两种VPN以及专线来保证客户数据的安全性,S2S vpn(站点到站点的,基于IPsec的),P2S v ...

  2. python小知识积累

  3. js的DOM的方法和属性总结

    1.DOM的获取元素document.getElementById()context.getElementsByTagName(tag) (可以获取相应上下文环境所有的tag标签)context.ge ...

  4. RBAC权限模型

    RBAC 现在大多数的管理系统都是基于RBAC开发的组织机构权限框架.所有的操作都是基于角色(Role)来完成的.我们先从需求的角度出发,来了解关于系统权限管理. 用户A和用户B都属于研发部,我们可以 ...

  5. CloudSim4.0报错NoClassDefFoundError,Caused by: java.lang.ClassNotFoundException: org.apache.commons.math3.distribution.UniformRealDistribution

    今天下载了CloudSim 4.0的代码,运行其中自带的示例程序,结果有一部分运行错误: 原因是找不到org.apache.commons.math3.distribution.UniformReal ...

  6. WPF之自定义控件

    1.先定义画刷,一般存为资源字典 格式: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml ...

  7. amazeui折叠面板智能化展开

    2016年12月12日 21:05:18 星期一 场景: 我拿这个组件用作管理后台的侧边栏 效果: 根据当前访问的url不同, 展开不同的面板 amazeui折叠面板 js代码: <script ...

  8. 【日记】thinkphp项目阿里云ECS服务器部署

    项目本地开发告一段落.准备上传到服务器上测试 技术组成 thinkphp+mysql+阿里ECS  代码管理方式git 一.阿里ECS服务器配置 1.因为线上已经有几个站点了.所以要配置ngnix多站 ...

  9. HTML5 绘制简单圆形 loading. . . .

    现在有很多的 loading 组件 什么js 等等 闲来没事就写一个 H5的 loading  有很多的Loading 是一张张图片 js 控制的  有了 canvas的 出现 你就可以体验不同之处了 ...

  10. Ubuntu和Win双系统解决主板时间差

    由于U和W两个系统的默认时间相差8小时,且会自动改变电脑主板里的默认时间,需要在U中进行设置. timedatectl set-local-rtc true