购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5.3 列表

既然读者已经知道了“什么是向量”,就很容易理解列表了,它是包含对象的容器。列表容器内的对象可以是其他列表,甚至可以是数据帧。在R语言环境中,用列表来存储对象很方便。例如,很多统计函数用列表来存储运行结果。

请读者看看如何使用列表,代码如下:

regression_results <- lm(formula = Sepal.Length ~ Species, data = iris)

IRIS数据集是非常有名的R语言预加载数据集,它包含在每个R语言基础版本中。上面这行命令表示基于IRIS数据集拟合一个回归模型(后文会详细讲解回归模型的细节),该模型试图解释特定种类的鸢尾花的萼片长度规律。

现在来看看regression_results对象,正如之前说过的,它存储了回归模型拟合的结果。如果要查看指定对象的类型,可以使用mode()函数,该函数将对象名称作为参数x的值,如下所示:

mode(x = regression_results)

运行结果如下:

list

1.创建列表

请读者查看之前的代码,看看通常都是如何创建列表的呢?在创建列表时,读者总是会用到赋值运算符“<-”,该运算符在创建向量时也会用到。两者之间的区别是,创建列表时使用的函数不同。创建列表时不是使用c()函数,而是使用list()函数。如下面例子所示,请读者尝试创建两个向量,然后将它们合并到一个列表中:

first_vector <- c("a","b","c")
  second_vector <- c(1,2,3)
  vector_list <- list(first_vector, second_vector)

2.获取列表子集

如果读者想定位列表中的特定对象,应该怎么做呢?这时需要使用[[]]运算符,用来指定要获取对象的层级。例如,想获取vector_list列表中的第二个向量,可以使用如下代码:

vector_list[[2]]

输入上述代码并按“Enter”键提交,会返回如下结果:

[1] 1 2 3

读者也许会想,能否获取列表中的单个对象的单个元素呢?答案是肯定的。例如,想要获取second_vector中的第三个元素,只需要再使用一次[[]]运算符即可,代码如下:

vector_list[[2]][[3]]

输入上述代码并按“Enter”键提交,会返回如下结果: zHsBo9HG59CtURda4jkap4Jul0AA2QwBLHNmPFb5sO6ck/7WurgoBl3TMbx+Qo9l

[1] 3
点击中间区域
呼出菜单
上一章
目录
下一章
×

打开