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. iptables过滤设置服务端口

    1.为SSH跟换连接端口 修改SSH配置文件:/etc/ssh/sshd_config #找到Port 22,这里是标识默认使用22端口,修改为想要的端口. Port Port 2.查看iptable ...

  2. vue2/vuex2的那点坑

    说是坑,其实大部分是我们自己的过错! vuex官方demo在1.0可以运行,在2.0报错?此类问题,应该很常见吧? 还有顺溜的利用1.0搭建的webpack编译环境到了vue2.0突然失效了,报错了? ...

  3. JS函数运行在它们被定义的作用域内,而不是它们被执行的作用域内

    一个函数的作用域并不会因为被另一个函数调用而拓展,取得另一个函数的作用域: function show(name){ alert(name) } function show2(){ var name= ...

  4. MarkdownPad2.5 注册码

    邮箱: Soar360@live.com 授权秘钥: GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6b ...

  5. 【ASP.NET】复制单个文件同时到多个目录

    有时候,当我们更新了一个dll文件后,需要将该dll文件复制到到不同的文件夹中,手动操作会很麻烦,因此可以考虑利用程序实现. 利用powershell批量复制 示例代码如下: $source=&quo ...

  6. PowerDesigner通过SQL语句生成PDM文件

    前提: 我用的是PowerDesigner15 数据库为Mysql5.5 步骤如下: 第一步:File->New Model 点击OK创建模板就行了 备注:在创建物理模型时DBMS下拉框是空的, ...

  7. theano学习

    import numpy import theano.tensor as T from theano import function x = T.dscalar('x') y = T.dscalar( ...

  8. Spring mvc时间格式处理

    spring mvc中,如果时间格式是yyyy-MM-dd,传入后台会报错,要增加一些配置才可以. 1.修改spring-mvc.xml,增加org.springframework.format.su ...

  9. android初练二

    android 之 Activity的启动方式 1.android的显示启动 显示启动一般用于在用自己的活动时进行页面跳转时常常使用到 public class MainActivity extend ...

  10. python升级

    一开始有这个需求,是因为用 YaH3C 替代 iNode 进行校园网认证时,一直编译错误,提示找不到 Python 的某个模块,百度了一下,此模块是在 Python2.7 以上才有的,但是系统的自带的 ...