数据结构教程(数据结构教程第五版pdf下载)

软件问答 2023.02.08 131

目录:

R语言基础教程 | 数据结构—因子

变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别变量。类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。因子(factor)是R语言中比较特殊的一个数据类型, 它是一个用于存储 的类型,举个例子,从性别上,可以把人分为:男人和女人,从年龄上划分,又可以把人分为:未成年人(18岁),成年人(=18)。

R把表示分类的数据称为因子,因子的行为有时像字符串,有时像整数。因子是一个向量,通常情况下,每个元素都是字符类型,也有其他数据类型的元素。因子具有因子水平(Levels),用于限制因子的元素的取值范围,R强制:因子水平是字符类型,因子的元素只能从因子水平中取值,这意味着,因子的每个元素要么是因子水平中的字符(或转换为其他数据类型),要么是缺失值,这是因子的约束,是语法上的规则。

通常情况下,在创建数据框变量时,R隐式把数据类型为字符的列创建为因子,这是因为R会把文本类型默认为类别数据,并自动转换为因子。前面我们在讲数据框时,就有提到。

通过class()函数检查gender列的类,结果是因子类型,而不是字符向量。

可以通过factor()函数创建因子,factor()函数的第一个参数必须是字符向量,通过levels参数显式设置因子水平。

参数注释:

例如,因子sex的值是向量c('f','m','f','f','m'),因子水平是c('f','m')

因子水平规定了 因子取值的范围 ,每一个因子,都包含因子水平的信息,例如,打印gender列,可以看到因子的元素和水平:

该因子中的每个值都是一个字符串,它们被限制为“f”、“m”和缺失值(NA)。如果把其他字符串添加到gender列中,R会抛出警告消息,并把错误赋值的元素设置为NA,例如:

因子水平,可以通过函数levels(factor)来查看:

水平的级数,相当于level的长度,可以由nlevels函数查询到:

使用factor函数创建因子,可以使用labels参数为每个因子水平添加标签,labels参数的字符顺序,要和levels参数的字符顺序保持一致,例如:

通常情况下,因子一般是无序的,这可以通过is.ordered()函数来验证:

因子的顺序,实际上是指因子水平的顺序,有序因子的因子水平是有序的。在特殊情况下,有些因子的水平在语义上大于或小于其他水平,R支持按顺序排列的因子,使用ordered函数,或通过给factor函数传入order=TRUE参数,把无序因子转换为有序的因子。

ordered()函数不能指定特定因子水平的顺序,通常情况下,因子中先出现的水平小于后出现的水平。例如,通过ordered函数把sex因子转换为有序的因子:

通过factor函数创建有序因子,通过levels指定因子的顺序。

因子的顺序,其实是因子水平的顺序,我们可以通过levels,使现有的因子按照指定的因子水平来排序。

例如,把heights数据框的gender,按照指定的levels,转换成有序因子:

在数据清理时,可能需要去掉与因子水平对应的数据,通常情况下,需要删除未使用的因子水平,可以使用droplevels函数,它接受因子或是数据框作为参数。

如果x是数据框,那么把数据框中未使用的因子删除。

在数据清理中,有时需要把因子转换为字符,通常情况下,使用as.character()函数,把因子转换为字符串:

使用as.numeric()或as.integer()函数可以把因子转换成对应的整数.

函数 cut() 能够把数值变量切成不同的块,然后返回一个因子.

参数注释:

例如,把身高数据,按照指定的切割点向量分割:

当需要把因子转换为有序因子时,要注意因子水平的顺序.

求数据结构教程(第5版)上机实验题参考答案李春葆

第一题:

第二题:

第三题:

第四题:

第五题:

第六题:

扩展资料

数据的逻辑结构和物理结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。

数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为数据结构。

这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结构和实现运算,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程。

个人需要一个视频教程, 【数据结构】全45讲 北京大学 计算机专业 本科视频

05严蔚敏

链接:

提取码:x8z9提取码:x8z9 复制这段内容后打开百度网盘手机APP,操作更方便哦!

若资源有问题欢迎追问~

求数据结构视频教程

数据结构-浙江大学-陈越、何钦铭  

链接:  

?pwd=bw2j 提取码: bw2j

数据结构-浙江大学-陈越、何钦铭百度网盘 

《数据结构》关键路径问题【高手进】

AOE网(Activity On Edge)即边表示活动的网,是一个带权的有向无环图,其中顶点表示事件(Event),每个事件表示在它之前的活动已经完成,在它之后的活动可以开始,弧表示活动,权表示活动持续的时间。AOE网可用来估算工程的完成时间。由于整个工程只有一个开始点和一个完成点,故在正常的情况(无环)下,网中只有一个入度为零的点(源点)和一个出度为零的点(汇点)。

由于在AOE网中有些活动可以并行地进行,所以完成工程的最短时间是从开始点到完成点的最长路径的长度(路径上各活动持续时间之和)。路径长度最长的路径叫做关键路径。假设开始点是v1,从v1到vi的最长路径长度叫做事件vi的最早发生时间,这个时间决定了所有以vi为尾的弧所表示的活动的最早开始时间。用e(i)表示活动ai的最早开始时间,l(i)为一个活动的最迟开始时间,这是在不推迟整个工程完成的前提下,活动ai最迟必须开始进行的时间。两者之差l(i)-e(i)意味着完成活动ai的时间余量。l(i)=e(i)的活动叫做关键活动。关键路径上的所有活动都是关键活动,提前完成非关键活动(不在关键路径的活动)并不能加快工程的进度。为了求得AOE网中活动的e(i)和l(i),首先应求得事件的最早发生时间ve(j)和最迟发生时间vl(j)。如果活动ai由弧j, k表示,其持续时间记为dut(j, k),则有:e(i) = ve(j), l(i) = vl(k) - dut(j, k)。求ve(j)和vl(j)需分两步进行:

从ve(0)=0开始向前递推,其中T是所有以第j个顶点为头的弧的集合。

从vl(n-1)=ve(n-1)起向后递推,其中S是所有以第i个顶点为尾的弧的集合。

活动ai的最早开始时间e[i]

若活动ai是由弧vi,vj表示,根据AOE网的性质,只有事件vi发生了,活动ai才能开始。也就是说,活动ai的最早开始时间应等于事件vi的最早发生时间。因此,有:e[i]=ve[i]

活动ai的最晚开始时间l[i]

活动ai的最晚开始时间指,在不推迟整个工程完成日期的前提下,必须开始的最晚时间。若 由弧 vi,vj表示,则ai的最晚开始时间要保证事件vj的最迟发生时间不拖后。因此,应该有:l[i]=vl[j]-dut(vi,vj)

由此得到求关键路径的算法:

输入e条弧j, k,建立AOE网的存储结构;

从源点出发,令ve[0]=0,按拓扑顺序求其余各顶点的最早发生时间ve[i](1=i=n-1)。如果得到的拓扑有序序列中顶点个数小于网中顶点数n,则说明网中存在环,不能求关键路径,算法终止,否则转到步骤(3);

从汇点vn出发,令vl[n-1]=ve[n-1],按逆拓扑顺序求其余各顶点的最迟发生时间vl[i](n-2=i=0);

根据各顶点的ve和vl值,求每条弧s的最早开始时间e(s)和最迟开始时间l(s)。若某弧满足条件e(s)=l(s),则为关键活动。

有谁知道哪有有关c++算法和数据结构的书籍教程?

新编数据结构教程 ¥23.75元

数据结构是计算机以及相关专业的一门重要的专业理论基础知识。本书系统地介绍了线性表、栈、队列、串、二维数组、广义表、树、森林、二叉树、图等十大结构,为后续的操作系统、编译原理、数据库原理等课程。奠定了良好的基础。本书还结合杳找和排序两大应用领域深入探讨 ...

数据结构考研教案 ¥34.20元

本书是根据严蔚敏、吴伟民编著的《数据结构》(C语言版)而编写的辅助教材。全书共分两部分,第1部分按原教材章节顺序,分为12章,每章按知识脉络图解、重点和难点解读、课程考试和考研要点、典型例题及习题精选详解等四个知识模块编写。第2部分给出了几套课程考试模?...

本文转载自互联网,如有侵权,联系删除

相关推荐