R 语言实战 (2nd ed)(21):创建数据集 2.2.6

阅读数:16 2019 年 11 月 13 日 15:44

R语言实战(2nd ed)(21):创建数据集 2.2.6

内容简介
本书注重实用性,是一本全面而细致的 R 指南,高度概括了该软件和它的强大功能,展示了使用的统计示例,且对于难以用传统方法处理的凌乱、不完整和非正态的数据给出了优雅的处理方法。作者不仅仅探讨统计分析,还阐述了大量探索和展示数据的图形功能。新版做了大量更新和修正,新增了近 200 页内容,介绍数据挖掘、预测性分析和编程。
本书适合数据分析人员及 R 用户学习参考。

(列表)

列表(list)是 R 的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。例如,某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。可以使用函数list()创建列表:

复制代码
mylist <- list(object1, object2, ...)

其中的对象可以是目前为止讲到的任何结构。你还可以为列表中的对象命名:

复制代码
mylist <- list(name1=object1, name2=object2, ...)

代码清单 2-7 展示了一个例子。

代码清单 2-7 创建一个列表

> g <- "My First List"
> h <- c(25, 26, 18, 39)
> j <- matrix(1:10, nrow=5)
> k <- c("one", "two", "three")
> mylist <- list(title=g, ages=h, j, k)       <----- 创建列表
> mylist                         <----- 输出整个列表
$title
[1] "My First List"

$ages
[1] 25 26 18 39

[[3]]
     [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10

[[4]]
[1] "one"   "two"   "three"

> mylist[[2]]            <----- 输出第二个成分
[1] 25 26 18 39
> mylist[["ages"]]
[[1] 25 26 18 39

本例创建了一个列表,其中有四个成分:一个字符串、一个数值型向量、一个矩阵以及一个字符型向量。可以组合任意多的对象,并将它们保存为一个列表。

你也可以通过在双重方括号中指明代表某个成分的数字或名称来访问列表中的元素。此例中,mylist[[2]]mylist[["ages"]]均指那个含有四个元素的向量。对于命名成分,mylist$ages也可以正常运行。由于两个原因,列表成为了 R 中的重要数据结构。首先,列表允许以一种简单的方式组织和重新调用不相干的信息。其次,许多 R 函数的运行结果都是以列表的形式返回的。需要取出其中哪些成分由分析人员决定。你将在后续各章发现许多返回列表的函数示例。

提醒程序员注意的一些事项
经验丰富的程序员通常会发现 R 语言的某些方面不太寻常。以下是这门语言中你需要了解的一些特性。

  • 对象名称中的句点(.)没有特殊意义,但美元符号($)却有着和其他语言中的句点类似的含义,即指定一个数据框或列表中的某些部分。例如,A$x是指数据框A中的变量x
  • R 不提供多行注释或块注释功能。你必须以#作为多行注释每行的开始。出于调试目的,你也可以把想让解释器忽略的代码放到语句if(FALSE){... }中。将FALSE改为TRUE即允许这块代码执行。
  • 将一个值赋给某个向量、矩阵、数组或列表中一个不存在的元素时,R 将自动扩展这个数据结构以容纳新值。举例来说,考虑以下代码:
> x <- c(8, 6, 4)
> x[7] <- 10
> x
[1]  8  6  4 NA NA NA 10

通过赋值,向量 x 由三个元素扩展到了七个元素。x <- x[1:3]会重新将其缩减回三个元素。

1 搜索“来自 Google 的 R 语言编码风格指南”可以找到这份文档的中文版。——译者注

评论

发布