随笔分类 -  R

1 2 3 4 5 ··· 10 下一页
摘要:在上一章中,我们掌握了使用 R 从网页中提取信息。为了理解网页爬虫的运行机理,我们学习了几种语言,如HTML、CSS 和XPath。事实上,R 提供的不仅仅是统计计算环境。R 社区还提供数据收集、数据操作、统计建模、可视化,以及报告和演示等一切可能涉及到的工具。本章将介绍一些提高生产力的扩展包。先回 阅读全文
posted @ 2019-02-11 15:11 NAVYSUMMER 阅读(138) 评论(0) 推荐(0)
摘要:上一节演示了 R Markdown 的部分功能,它是为创建动态文档而设计的。本节将快速 介绍如何创建交互式应用程序,使用图形用户界面与数据进行交互。 创建 shiny 应用程序 使用 shinydashboard 阅读全文
posted @ 2019-02-11 15:10 NAVYSUMMER 阅读(247) 评论(0) 推荐(0)
摘要:除了 shiny 扩展包提供的函数之外,RStudio 也开发了一个 shinydashboard 扩展包 (http://rstudio.github.io/shinydashboard/),它呈现数据的方式就是专门用于概览或监测数据。接下来的例子旨在说明创建一个简易仪表板有多简单,这个仪表板可以 阅读全文
posted @ 2019-02-11 15:09 NAVYSUMMER 阅读(466) 评论(0) 推荐(0)
摘要:R 本身是一个优秀的数据分析和数据可视化平台。然而,我们通常不会将 R 和分析脚本提供给客户,让客户自己运行。数据分析的结果不仅可以在 HTML 网页、PDF 文档或 Word 文档中显示,还可以呈现在交互式应用中,这种应用允许用户与数据进行交互,用户可以修改某些参数并查看结果如何发生变化。由 RS 阅读全文
posted @ 2019-02-11 15:06 NAVYSUMMER 阅读(482) 评论(0) 推荐(0)
摘要:数据分析师的工作不仅是将数据放入模型并得出一些结论。通常需要完成从数据收集、数据清理、可视化、建模再到最后编写报告或制作演示文稿的完整工作流程。在前面几章中,我们从不同方面深入学习 R 编程语言,从各个环节,一步一步提升生产效率。在本章中,我们将关注最后一步:报告和展示。在以下内容中,我们将学习一种 阅读全文
posted @ 2019-02-11 15:04 NAVYSUMMER 阅读(377) 评论(0) 推荐(0)
摘要:如果没有 R 代码块,R Markdown 与普通的 markdown 文档没有什么区别。使用代码块,代码的输出便可以嵌入到文档中,动态生成最终结果。如果代码块使用的是随机数生成器而没有设定随机数种子,那么每次渲染文档,都将得到不同的结果。在默认情况下,代码块的输出直接放在代码下面,以##开头,固定 阅读全文
posted @ 2019-02-11 15:03 NAVYSUMMER 阅读(751) 评论(0) 推荐(0)
摘要:markdown 易于写入和读取,具有编写报告的必要功能,例如简单的文本格式,嵌入图片、链接、表、引用、数学公式以及代码块。虽然在 markdown 中编写纯文本很容易,但是创建具有许多图片和表格的报告却不是很容易,特别是当图和表是由代码动态生成的时候。R Markdown 是将 R 整合到 mar 阅读全文
posted @ 2019-02-11 14:59 NAVYSUMMER 阅读(429) 评论(0) 推荐(0)
摘要:R 是统计计算和数据分析的利器。给定一个数据集,利用前几章介绍到的 R 中灵活的数据结构或高性能计算,我们可以很方便地进行数据转换、建模和数值分析。一般来说,商业数据库会将数据以表格的形式很好地组织起来,便于使用。然而,情况并非总是如此合意,输入数据集也并非总是立即可得。有时,我们需要自己收集数据。 阅读全文
posted @ 2019-02-11 14:53 NAVYSUMMER 阅读(515) 评论(0) 推荐(0)
摘要:在前面的内容中,我们已经学习了 HTML、CSS 和 XPath 的基础知识。从真实世界的网页中获取数据,关键在于如何编写合适的 CSS 或者 XPath 选择器。本节介绍一些确定选择器的简单方法。假设从https://cran.rstudio.com/web/packages/available_ 阅读全文
posted @ 2019-02-11 14:52 NAVYSUMMER 阅读(2814) 评论(0) 推荐(0)
摘要:在前面的内容中,我们掌握了一些 CSS 选择器和它们的使用方法,以及 rvest 包中用于提取网页内容的函数。一般来说,CSS 选择器足够满足绝大部分的 HTML 节点匹配的需要。但是,当需要根据某些特殊条件选择节点时,需要用更强大的技术。图 14-5 所示的网页比 data/products.ht 阅读全文
posted @ 2019-02-11 14:47 NAVYSUMMER 阅读(217) 评论(0) 推荐(0)
摘要:在 R 中,关于网络爬虫最简单易用的扩展包是 rvest。运行以下代码从 CRAN 上安装:install.packages("rvest")首先,加载包并用 read_html( ) 读取 data/single-table.html,再尝试从网页中提取表格:library(rvest)## Lo 阅读全文
posted @ 2019-02-11 14:46 NAVYSUMMER 阅读(894) 评论(0) 推荐(0)
摘要:信息展示在网页上。图 14-1 展示了一个简单的网页(网址为 data/simple-page.html),包括标题和一个段落:所有现代浏览器都支持这样的网页。用任意的文本编辑器打开 data/simple-page.html,就会看到网页背后的代码,如下所示:<!DOCTYPE html><htm 阅读全文
posted @ 2019-02-11 14:44 NAVYSUMMER 阅读(401) 评论(0) 推荐(0)
摘要:在前一章中,我们学习了许多内置函数以及为数据操作量身定制的扩展包。虽然这些包依赖于不同的技术,设计初衷也有所不同,但它们都在很大程度上简化了数据筛选和聚合的步骤。然而,数据处理不仅仅是简单的筛选和聚合,有时还涉及模拟和其他计算密集型任务。R 比 C 和 C++ 这些高性能编程语言要慢很多,这是因为 阅读全文
posted @ 2019-02-11 14:40 NAVYSUMMER 阅读(205) 评论(0) 推荐(0)
摘要:在上一节中,我们演示了如何使用分析工具找出代码中的“性能瓶颈”。本节将学习一些提高代码性能的方法。 使用内置函数 使用向量化 使用字节码编译器 使用由 Intel MKL 支持的 R 使用并行计算 使用 Rcpp 阅读全文
posted @ 2019-02-11 14:39 NAVYSUMMER 阅读(114) 评论(0) 推荐(0)
摘要:正如我们所提到的那样,并行计算只有在每次迭代都是独立的情况下才可行,这样最终结果才不会依赖运行顺序。然而,并非所有任务都像这样理想。因此,并行计算可能会受到影响。那么怎样才能使算法快速运行,并且可以轻松地与 R 实现交互呢?答案是通过 Rcpp 用 C++ 语言编写算法(http://www.rcp 阅读全文
posted @ 2019-02-11 14:38 NAVYSUMMER 阅读(1070) 评论(0) 推荐(0)
摘要:正如我们在上一节提到的,R 是被设计成单线程的,但它仍然可以使用多线程并行计算,即运行多个 R 会话进行计算。该技术是由一个随 R 一起发布的并行库来支持的。假设我们需要做一次模拟:生成一个遵循特定随机过程的随机路径,看看在任何一点是否有值超出了起点的一个固定邻域。以下代码是一种实现:set.see 阅读全文
posted @ 2019-02-11 14:35 NAVYSUMMER 阅读(395) 评论(0) 推荐(0)
摘要:我们通常使用的 R 版本是单线程的,即只使用一个 CPU 线程运行所有 R 代码。这样的好处是运行模型比较简单且安全,但是它并没有利用多核计算。Microsoft R Open(MRO,https://mran.microsoft.com/open/)是 R 的一个增强版本。由 IntelMath 阅读全文
posted @ 2019-02-11 14:33 NAVYSUMMER 阅读(470) 评论(0) 推荐(0)
摘要:在上一节中,我们介绍了向量化的强大之处。然而,有时候难以使用向量化解决某些问题,必须使用 for 循环。在这种情况下,我们可以考虑使用字节代码编译器来编译函数,就不需要对函数进行解析,运行速度也会更快。首先,我们加载编译器的包,它是随 R 一起发布的。使用 cmpfun( ) 函数编译一个给定的 R 阅读全文
posted @ 2019-02-11 14:32 NAVYSUMMER 阅读(196) 评论(0) 推荐(0)
摘要:算术运算符是一些特殊的内置函数,诸如 +、-、*、/、^ 和 %%。这些运算符不仅高效,还是向量化的。比如在 R 中完成一个 + 的实现:add <- function(x, y) {stopifnot(length(x) == length(y),is.numeric(x), is.numeric 阅读全文
posted @ 2019-02-11 14:31 NAVYSUMMER 阅读(129) 评论(0) 推荐(0)
摘要:前面,我们演示了 my_cumsum1( )、my_cumsum2( ) 和内置函数 cumsum( ) 之间的性能差异。尽管 my_cumsum2( ) 比 my_cumsum1( ) 快,但是当输入向量的数据量很大时,cumsum( ) 要比它们都快很多。而且,随着输入向量数据量的增加,cums 阅读全文
posted @ 2019-02-11 14:29 NAVYSUMMER 阅读(159) 评论(0) 推荐(0)

1 2 3 4 5 ··· 10 下一页
交流群 编程书籍