这一章节将如何对 R 对象中的值进行选取,R 的符号规则有两种方式进行查询:
第一种记号体系:索引
查询索引语法:
deck[ , ]
(使用中括号)
其中[ , ]
为索引,其中含有两个索引参数,用 "," 分隔
在 R 中,有六种方式创建并使用索引,分别为:
- 正整数索引
- 负整数索引
- 零
- 空格
- 逻辑值
- 名称
第二种记号体系: $ 和 [[]]
构建索引
正整数索引
格式: deck[1, c(1,2,3)]
语法:
索引从 1 开始
负整数索引
格式:deck[-(2:52), 1:3]
功能:返回除了符号后行元素外所有行元素
语法:
同一个索引参数不能同时使用正整数和负整数
零索引
格式: deck[0, 0]
功能:返回一个空的对象
空格索引:
格式:deck[1, ]
功能:提取该索引位置代表维度的所有元素
逻辑值索引
格式:deck[1, c(TRUE, TRUE, FALSE)]
功能:构建一个含有逻辑值索引(一个逻辑值向量),提取其中为 TRUE 的元素
语法:逻辑值向量与原向量的长度相同
名称索引
格式: deck[1, c("face", "suit", "value")]
功能:提取具有匹配名称属性的对象
实用:由于数据框中的列必须有名称,因此常用于数据框中提取对象
$ 和 [[]]
$ 和 [[]] 可用于列表和数据框,提取其中的数据元素,而不是数据对象.
$
格式:
deck$value
功能:
用于提取所选数据框的列的名称
[[]]
问题缘由:
- 列表中的元素没有名称,可以使用 [[]] 和数字,来得到相应的元素.
- 通过 [] 得到的会是一个新的列表对象,无法进行 sum 等计算
格式:
lst[[1]]
功能:
返回 lst 这个列表中第一个对象中的值
注意的要点:
与 lst[1] 不同, lst[[1]] 返回的是数据元素, lst[1] 返回一个新的数据对象.