随笔分类 -  R

摘要:上一节我们介绍了复制—修改机制,示例中给出了触发该机制的两种情况。当一个对象有多个名称或作为参数传递给函数时,修改这个对象会先复制它,然后再修改它的副本。对于在函数外修改对象,我们介绍了<<- 的用法,首先找到函数外的变量,然后修改该对象而不是局部复制。这就引出了一个重要的概念,即函数有内部和外部之 阅读全文
posted @ 2019-02-11 10:11 NAVYSUMMER 阅读(115) 评论(0) 推荐(0)
摘要:前一节中我们展示了惰性求值的工作机制,通过避免不必要计算,节省时间和内存。本节要介绍 R 的一个重要特性,以便更安全地处理数据。我们先创建一个简单的数值向量 x1:x1 <- c(1, 2, 3)然后将 x1 的值赋给 x2:x2 <- x1现在 x1 和 x2 的值完全相同。如果我们修改其中一个向 阅读全文
posted @ 2019-02-11 10:10 NAVYSUMMER 阅读(165) 评论(0) 推荐(0)
摘要:如果能够理解 R 函数的运行机制,那么对 R 的运行机制就能够掌握十之八九。通过前几章的学习,我们掌握了一些最常用的基本函数的用法,但是可能对其内部机制仍有疑惑。比如创建如下的函数:test0 <- function(x, y) {if (x > 0) x else y}这个函数有点特殊,看似只有当 阅读全文
posted @ 2019-02-11 10:07 NAVYSUMMER 阅读(574) 评论(0) 推荐(0)
摘要:我们使用 new.env( ) 函数创建一个新环境:e1 <- new.env()环境通常用十六进制数表示,即内存地址:e1## <environment: 0x0000000014a45748>我们可以用提取操作符($ 和 [[)在环境中创建变量,其代码形式类似于修改一个列表:e1$x <- 1e 阅读全文
posted @ 2019-01-22 14:54 NAVYSUMMER 阅读(96) 评论(0) 推荐(0)
摘要:环境是由一组名称组成的对象,每个环境(除了空环境)都有一个父环境。每个名称(也称为符号或变量)都指向一个对象。当我们查找一个符号时,如果它在当前环境中,R 就 会在当前环境中搜索并返回该符号指向的对象。如果这个符号在当前环境中没有找到,R 就会到它的父环境中搜索(直到找遍所有环境)。图 8-1 说明 阅读全文
posted @ 2019-01-22 14:52 NAVYSUMMER 阅读(153) 评论(0) 推荐(0)
摘要:上一节我们介绍了复制—修改机制,示例中给出了触发该机制的两种情况。当一个对象有多个名称或作为参数传递给函数时,修改这个对象会先复制它,然后再修改它的副本。对于在函数外修改对象,我们介绍了<<- 的用法,首先找到函数外的变量,然后修改 该对象而不是局部复制。这就引出了一个重要的概念,即函数有内部和外部 阅读全文
posted @ 2019-01-22 14:51 NAVYSUMMER 阅读(96) 评论(0) 推荐(0)
摘要:前一节中我们展示了惰性求值的工作机制,通过避免不必要计算,节省时间和内存。本节要介绍 R 的一个重要特性,以便更安全地处理数据。我们先创建一个简单的数值向量 x1:x1 <- c(1, 2, 3)然后将 x1 的值赋给 x2:x2 <- x1现在 x1 和 x2 的值完全相同。如果我们修改其中一个向 阅读全文
posted @ 2019-01-22 14:47 NAVYSUMMER 阅读(118) 评论(0) 推荐(0)
摘要:如果能够理解 R 函数的运行机制,那么对 R 的运行机制就能够掌握十之八九。通过前几章的学习,我们掌握了一些最常用的基本函数的用法,但是可能对其内部机制仍有疑惑。比如创建如下的函数:test0 <- function(x, y) {if (x > 0) x else y} 这个函数有点特殊,看似只有 阅读全文
posted @ 2019-01-22 14:44 NAVYSUMMER 阅读(246) 评论(0) 推荐(0)
摘要:在前面的章节中,我们已经学习了 R 中最常用到的对象类型和函数。掌握了如何创建和修改向量、列表和数据框,如何定义自己的函数,以及如何用恰当的表达式把脑中的逻辑转换成编辑器中的 R 语言代码。有了这些对象、函数和表达式,就可以开始处理数据了。本章将开始数据处理的旅程,主要包括以下几个主题: 读写数据 阅读全文
posted @ 2019-01-22 14:42 NAVYSUMMER 阅读(160) 评论(0) 推荐(0)
摘要:实际的数据分析中,我们大部分时间都在进行数据清洗(data cleansing),即对原数据进行筛选和转换,使其更易于分析。这个筛选和转换的过程也叫数据处理(data manipulation)。我们将在第 12 章中详细介绍这个主题。在这一小节,我们直接假设数据已经过处理,可以用于分析。我们不对模 阅读全文
posted @ 2019-01-22 14:41 NAVYSUMMER 阅读(89) 评论(0) 推荐(0)
摘要:这一节,我们尝试用另一种模型拟合数据,这种模型称作回归树(regression tree) (https://en.wikipedia.org/wiki/Decision_tree_learning),它是一种机器学习模型。它不是简单的线性回归,而是用决策树来拟合数据。假设我们想根据太阳辐射(Sol 阅读全文
posted @ 2019-01-22 14:40 NAVYSUMMER 阅读(264) 评论(0) 推荐(0)
摘要:R 中最简单的模型就是线性模型,即使用一个线性模型描述两个随机变量在一系列假设下的关系。在以下例子中,我们创建了一个线性函数,将 x 映射到 3+2*x(即 f(x))。然后,生成一个正态分布的随机数值向量 x,再用 f(x)加上一些独立的噪声生成 y:f <- function(x) 3 +2 * 阅读全文
posted @ 2019-01-22 14:38 NAVYSUMMER 阅读(1178) 评论(0) 推荐(0)
摘要:直方图和密度图是展示数据分布的两种形式。通常只需要几个关键的分位数,我们就能对数据的整体分布有一个印象。箱线图(或称为盒须图,box-and-whisker plot)是完成此项任务的简单方式。对于一个随机生成的数值向量,我们可以调用boxplot( )来绘制箱线图,如图7-28所示。x <- rn 阅读全文
posted @ 2019-01-22 14:35 NAVYSUMMER 阅读(427) 评论(0) 推荐(0)
摘要:在上一节中,我们介绍了一些导入数据的函数,这是大多数数据分析的第一步。通常,最好在将数据代入模型前先查看一下数据,这也是我们下一步要讲的内容。原因很简单,不同的模型具有不同的优势,没有任何一个模型在所有情况下都是最佳的,因为这些模型都有一系列不同的假设。若不根据假设条件对数据进行检验,就随意应用一个 阅读全文
posted @ 2019-01-22 14:35 NAVYSUMMER 阅读(139) 评论(0) 推荐(0)
摘要:前面我们已经学会了如何创建几种不同类型的图。散点图和折线图是对数据集中观测值直接作图,柱状图和饼状图通常用于对不同类别的数据进行粗略总结。上述这几种图形有以下两方面的局限性:散点图和折线图表达的信息过多,以至于很难刻画出重点特征;饼状图和柱状图则丢弃过多信息,因此也难以做出可信判断。直方图能够展示数 阅读全文
posted @ 2019-01-22 14:33 NAVYSUMMER 阅读(803) 评论(0) 推荐(0)
摘要:在前面的小节中,我们已经学会了如何创建散点图和折线图。此外,还有其他几种类型的图形比较有用,在这里值得一提。柱状图是其中最常用的一种。柱状图中柱子的高度可以用于对比不同类别的数量。我们创建一个最简单的柱状图,如图7-20所示。这里,使用barplot( )而不是plot( ):barplot(1:1 阅读全文
posted @ 2019-01-22 14:30 NAVYSUMMER 阅读(197) 评论(0) 推荐(0)
摘要:另一种有用的图形是饼状图。用于创建饼状图的函数 pie( ),与 barplot( )的运行方式类似。它作用于含有说明标签的数值向量;也可以直接作用于命名数值向量。图 7-22是一个简单的例子:grades <- c(A = 2, B = 10, C = 12, D = 8)pie(grades, 阅读全文
posted @ 2019-01-22 14:30 NAVYSUMMER 阅读(158) 评论(0) 推荐(0)
摘要:对于时间序列数据,折线图能更清楚地展示随时间发展的趋势和变化。如图 7-13 所示,创建折线图,只需要在调用 plot( )时设置 type= "l"即可:t <- 1:50y <- 3 * sin(t * pi /60) + rnorm(t)plot(t, y, type = "l",main = 阅读全文
posted @ 2019-01-22 14:28 NAVYSUMMER 阅读(292) 评论(0) 推荐(0)
摘要:在 R 中,可视化数据的基本函数是 plot( )。如果我们只为 plot( )提供一个数值向量或整数向量,它将按索引顺序产生一个散点图。例如,以下代码按递增顺序创建包含10 个点的散点图,如图 7-3 所示。plot(1:10) 图 7-3192 第 7 章 数据处理我们可以通过生成两个线性相关的 阅读全文
posted @ 2019-01-22 14:23 NAVYSUMMER 阅读(497) 评论(0) 推荐(0)
摘要:在 R 中,任何类型的数据分析的第 1 步都是加载数据,即将数据集导入到环境中。在此之前,我们必须判断出数据文件的类型,并选择适当的工具来读取数据。 读写文件中的文本格式数据 读写 Excel 工作表 读写原生数据文件 加载内置数据集 阅读全文
posted @ 2019-01-22 14:18 NAVYSUMMER 阅读(172) 评论(0) 推荐(0)

交流群 编程书籍