R中的子集数据集

【R中的子集数据集】无论你是在比较不同的人口统计学对营销活动的反应, 放大特定时间范围还是从库存中提取有关选定的几种产品的信息, 子集数据集都可以使你在数据集中提取有用的观察结果。 R是使子集数据容易和直观的好工具。在本教程结束时, 你将掌握从数据集中提取所需信息的专业知识。
对数据进行子集设置不会更改数据的内容, 而只是选择与你要实现的目标最相关的部分。通常, 有三种方式可以对数据集的行和列进行子集化-按索引, 按名称和按值。
按索引子集行和列
子集行和列的一种方法是通过数据集的索引。这与将行和列描述为” 第一行” , “ 第二列和第五列中的所有行” 或” 第二列至第五列中的第一行” 相同。让我们使用R中称为” 虹膜” 的数据集来指定此类短语。从其文档中, ” [他的(费舍尔或安德森氏)著名的虹膜数据集分别以厘米为单位, 分别测量了萼片的长度和宽度以及花瓣的长度和宽度, 三种鸢尾花各有50朵花, 分别是鸢尾, 杂色和初春。
要对数据进行子集化, 请在数据集对象之后使用方括号。数据集的行被指定为方括号内的第一个元素, 数据集的列被指定为第二个元素, 并用逗号分隔:

data[rows, columns]

按名称子集行和列
在R中, 数据集的行和列具有名称属性。行名很少使用, 默认情况下提供索引(整数从1到数据集的行数), 就像上一节中看到的那样。实际上, 如果你在虹膜数据集上调用rownames(), 你将看到它们只是从1索引到150:
> rownames(iris)[1] "1""2""3""4""5""6""7""8""9""10""11""12""13""14"[15] "15""16""17""18""19""20""21""22""23""24""25""26""27""28"[29] "29""30""31""32""33""34""35""36""37""38""39""40""41""42"[43] "43""44""45""46""47""48""49""50""51""52""53""54""55""56"[57] "57""58""59""60""61""62""63""64""65""66""67""68""69""70"[71] "71""72""73""74""75""76""77""78""79""80""81""82""83""84"[85] "85""86""87""88""89""90""91""92""93""94""95""96""97""98"[99] "99""100" "101" "102" "103" "104" "105" "106" "107" "108" "109" "110" "111" "112"[113] "113" "114" "115" "116" "117" "118" "119" "120" "121" "122" "123" "124" "125" "126"[127] "127" "128" "129" "130" "131" "132" "133" "134" "135" "136" "137" "138" "139" "140"[141] "141" "142" "143" "144" "145" "146" "147" "148" "149" "150"> nrow(iris)[1] 150

行名称在较小的数据集中更常见, 用于使数据集中的观测值易于识别。例如, 对于包含医生患者健康信息的小型数据集, 此数据集的行名称可以是患者的全名。
另一方面, 几乎所有数据集都普遍使用列名。你可以使用colnames()函数或names()函数访问它们:
colnames(iris)[1] "Sepal.Length" "Sepal.Width""Petal.Length" "Petal.Width""Species"names(iris)[1] "Sepal.Length" "Sepal.Width""Petal.Length" "Petal.Width""Species"

要通过行和列的名称对数据集进行子集化, 只需再次使用方括号(以数据集对象为前缀)即可:
重要的是要注意, 行名和列名都是字符, 因此绝对需要使用单引号或双引号!
按值细分行和列
按值对行和列进行子集设置通常可以提供最大的灵活性。例如, 你可以使用如下条件语句来提取鸢尾花的数据:
> iris[iris$Species == "setosa", ]Sepal.Length Sepal.Width Petal.Length Petal.Width Species15.13.51.40.2setosa24.93.01.40.2setosa34.73.21.30.2setosa44.63.11.50.2setosa...475.13.81.60.2setosa484.63.21.40.2setosa495.33.71.50.2setosa505.03.31.40.2setosa

条件语句(例如iris $ Species ==” setosa” )位于方括号中的row元素(即, 逗号前面的第一个元素)。除了第一个元素中的条件语句之外, 你还可以在第二个元素中按索引或名称指定列。在下面的控制台中, 尝试仅选择鸢尾花的萼片尺寸:
概括
在本教程中, 你:
  • 了解有关按索引对数据帧进行子集设置的信息。行和列的索引分别为1到行和列数的整数。
  • 了解有关按名称设置数据框的信息。你了解到很少指定行名, 并且列名是字符类型。
  • 了解如何在方括号内的row元素中使用条件语句来按值对数据框架进行子集化。
  • 了解如何结合使用这些方法以实现更灵活的子设置(例如, 对行使用条件, 对索引使用子集或对列进行子集设置)。
以下是一些练习, 可以帮助你增强所学内容。实践使完美, 因此请尝试一下!
练习练习
选择其萼片宽度大于花瓣长度的所有观测值。
选择所有杂种中萼片宽度大于平均萼片宽度的杂色鸢尾。
报告所有花瓣长度小于5厘米的鸢尾鸢尾的平均萼片宽度。
想更多地了解从数据中提取见解的其他方法吗?在srcmini上查看这些课程!

    推荐阅读