跳过主导航

如何创建和操作列表和数据帧在R

本文提供了一个循序渐进的指南如何创建和操作列表和数据帧在R。
©Wellcome基因组校园先进的课程和科学会议

列表和数据帧在R

一个列表是一个“对象“在R,由其他对象的集合称为组件。

列表可以有相同类型的组件或模式,或组件的不同类型或模式。他们因此可以组合不同的组件(数字、逻辑…)在一个单一的对象。

一个数据帧只是一个指定的类称为“data.frame”列表,但列出的组件必须向量(数字、字符、逻辑)因素,矩阵(数字),列表,甚至其他数据帧。其他限制包括事实数据帧的内容必须具有相同的长度(向量),或者相同的行大小(矩阵)。一个数据帧可以被认为是一个简单的矩阵包含,有可能不同的模式和属性。

我们鼓励您找到更多信息列表和数据帧在以下链接:https://cran.r-project.org/doc/manuals/r-release/R-intro.html让我们看看在这个步骤如何创建和操作列表和数据帧。

如何创建和操作列表

步骤1。我们建议您在相同的工作工作您在前面创建子目录,使用以下选项之一

开始之前R

美元cd做运动的人美元松材线虫病/用户/ imac /桌面/做运动美元R

发射后R

>setwd(“/用户/ imac /桌面/做运动的人”)>getwd()(1]“/用户/ imac /桌面/做运动的人”

步骤2。让我们创建一个简单的列表称为l .我们需要分配元素列表。

>l< -列表(乳制品=“牛奶”,类型=“杏仁”,形式=“液体”,contain.liter=c(0.5,1,2))

这将创建一个名为L 4元素的列表。

>l< -列表(乳制品=“牛奶”,类型=“杏仁”,形式=“液体”,contain.liter=c(0.5,1,2))>>l美元乳制品(1]“牛奶”美元类型(1]“杏仁”美元形式(1]“液体”美元contain.liter(1]0.51.02.0

步骤3。函数”长度()”可以让你轻松地检索这个列表的顶层组件的数量。

>长度(l)(1]4

步骤4。请注意,默认组件总是编号列表。如果L是我们刚刚创建的列表与4组件,然后L[[1]]将它的第一个组件,等等。我们也可以指独立组件4的第一项,作为L[[4]]是一个向量本身和L[[4]][[1]]将首次引用条目。

>l[[1]](1]“牛奶”>l[[2]](1]“杏仁”>l[[3]](1]“液体”>l[[4]](1]0.51.02.0>>l[[4]][[1]](1]0.5

步骤5。更方便,我们也可以参考组件列表的名称,而不是利用其双括号之间的位置号。使用此选项时,您将需要提供组件名称使用“$”符号。作为一个例子,您可以使用L乳制品或L[[1]]同样引用列表的第一个组件

>l美元乳制品(1]“牛奶”>l[[1]](1]“牛奶”

步骤6。不同的列表可以组合使用我们之前使用的连接功能,c ()。这将导致模式的对象列表,因为我们给这个函数参数的模式列表。

>List.A< -列表(乳制品=“牛奶”,类型=“杏仁”)>List.B< -列表(乳制品=“酸奶”,类型=“冻结”)>List.AB< -c(List.A,List.B)>List.AB美元乳制品(1]“牛奶”美元类型(1]“杏仁”美元乳制品(1]“酸奶”美元类型(1]“冻结”

请注意。请注意,有很多选项使用列表。我们只覆盖了那些可能与理解剩下的课程。我们鼓励您找到更多信息列表的链接给你介绍这个步骤的一部分。

如何创建和操纵数据帧

步骤1。现在我们知道变量向量,可以创建和操作和列表,按顺序使用这些知识来创建一个数据帧df

>的名字< -c(“莉莉”,“詹姆斯”,“哈利”)>年龄< -c(30.,31日,11)>高度< -c(168年,179年,139年)>重量< -c(57,69年,32)>df< -data.frame(row.names=的名字,年龄,高度,重量)

步骤2。一旦创建,数据帧可以直接调用,只需输入它的名字。

>的名字< -c(“莉莉”,“詹姆斯”,“哈利”)>年龄< -c(30.,31日,11)>高度< -c(168年,179年,139年)>重量< -c(57,69年,32)>df< -data.frame(row.names=的名字,年龄,高度,重量)>df年龄高度重量礼来公司30.168年57詹姆斯31日179年69年哈利11139年32

步骤3。额外的信息可以添加到现有的数据帧。我们可以包含相同的名称创建一个新的数据帧,可以使通信(作为一个主键),然后把两个数据帧使用cbind (),一个函数用于将对象(向量,数据帧,…)列。

>的名字< -c(“莉莉”,“詹姆斯”,“哈利”)>< -c(“F”,“M”,“M”)>df.add< -data.frame(row.names=的名字,)>df.add礼来公司F詹姆斯哈利>df.all< -cbind(df,df.add)>df.all年龄高度重量礼来公司30.168年57F詹姆斯31日179年69年哈利11139年32

步骤4。信息的形式可以补充道因素可以用来代表分类数据,可以帮助您使用绘图函数。再次让我们创建一个新的数据帧(df.add.fact)与性向量中的信息作为补充道因素,在一个新的数据帧(结合df.all.fact)

>的名字< -c(“莉莉”,“詹姆斯”,“哈利”)>< -as.factor(c(“F”,“M”,“M”))>df.add.fact< -data.frame(row.names=的名字,)>df.all.fact< -cbind(df,df.add.fact)>df.all.fact年龄高度重量礼来公司30.168年57F詹姆斯31日179年69年哈利11139年32

注1。注意,我们强迫“性”的内容是一个因素as.factor ()。因素分类数据,只能采取某些值,如“M”和“F”,这是“性”的领域。这些不同的价值观是预定义的和将被称为水平。这可以使用功能进行检查类()水平()

>()(1]“因素”>水平()(1]“F”“M”

注2。在这个阶段,你会发现没有区别。但使用水平()你将能够看到因素现在可以认为是这样的。

>水平(df.all美元)< -c(“M”,“F”)>df.all年龄高度重量礼来公司30.168年57F詹姆斯31日179年69年哈利11139年32>>水平(df.all.fact美元)< -c(“M”,“F”)>df.all.fact年龄高度重量礼来公司30.168年57詹姆斯31日179年69年F哈利11139年32F

查询的类型我们可以用“水平()“和查询的数量水平,你可以使用“nlevels ()

>水平()(1]“F”“M”>nlevels()(1]2

步骤5。让我们看一组有用的功能探索和操纵数据帧

    1. 有多少行和列的数据帧df.all.fact吗?您可以使用昏暗的()设置或获取数据的维度框架(行、列),或更具体地说nrow ()列的数量ncol ()列数。

>昏暗的(df.all.fact)(1]34>nrow(df.all.fact)(1]3>ncol(df.all.fact)(1]4

2。是什么在每一列数据?使用酸式焦磷酸钠()将输出的结果一定函数对象(这里将输出的类在数据帧)还是str ()在R中显示一个对象的结构或数据帧的所有基本结构(每一行)

>酸式焦磷酸钠(df.all.fact,)年龄高度重量“数字”“数字”“数字”“因素”>>str(df.all.fact)“data.frame”:3奥林匹克广播服务公司。4变量:美元年龄:全国矿工工会30.31日11美元高度:全国矿工工会168年179年139年美元重量:全国矿工工会5769年32美元:因素w/2水平“M”,“F”:122

3所示。是可能的子集或过滤数据帧,和我们一样简单的列表。例如,让我们看到如何选择一列或一行。

选择一个专栏:[1]列1,(1)是第一列显示为一个向量

选择行:[1]是第一行

>df.all.fact(1]年龄礼来公司30.詹姆斯31日哈利11>df.all.fact(,1](1]30.31日11>>df.all.fact(1,)年龄高度重量礼来公司30.168年57

4所示。这是如何选择的一组元素。

选择元素在第一列和第一行:[1]

在第三列选择元素1到3

>df.all.fact(1,1](1]30.>>df.all.fact(1:3,3](1]5769年32

5。重新订货数据在数据帧中,有不同的选择。我们可以用“订单()”。让我们试着重新订货基于身高列在这里

>df.all.fact年龄高度重量礼来公司30.168年57詹姆斯31日179年69年F哈利11139年32F>df.all.fact(订单(df.all.fact美元高度),)年龄高度重量哈利11139年32F礼来公司30.168年57詹姆斯31日179年69年F

6。过滤数据,功能如“独特的()”和“sort ()可以使用”。这应该提醒你的排序和uniq函数在Unix中,可以使用。

获得独特的值列年龄:独特(df.all.fact时代美元)

获得惟一值排序的列年龄:排序(独特(df.all.fact时代美元))

>独特的(df.all.fact美元年龄)(1]30.31日11>>排序(独特的(df.all.fact美元年龄))(1]1130.31日

请注意。有不同类型的数据,可以考虑,并根据其本质区别对待。

表解释不同类型的数据,定性和定量

©Wellcome基因组校园先进的课程和科学会议
本文从免费在线

生物信息学生物学家:介绍Linux, Bash脚本,R

FutureLearn——终身学习

我们的目的是将受教育的机会。

我们提供多样化的选择来自著名大学的课程和来自世界各地的文化机构。这些都是一步一个脚印,并可以在手机、平板电脑和桌面,所以你可以学习你的生活。

我们认为学习应该是愉快的,社会经验,所以我们的课程提供了机会与他人讨论你的学习,帮助你作出新的发现和形成新的想法。
你可以解锁新的机遇与无限制地成百上千的在线短期课程一年通过订阅我们的无限的包。电竞博彩app有什么与顶尖大学和组织建立你的知识。dota2竞猜吧

了解更多关于如何FutureLearn正在改变的受教育机会