【上一篇:72.关于写自定义函数的练习题】
【下一篇:74.关于原子向量的类型及长度】
有的函数与向量(vector)一起工作,有的函数与tibble一起工作。基本上我们自己写的函数都是基于向量的,后者则比如ggplot2,dplyr、tidyr包中的函数。
学习R,可以从基础的数据结构:向量、数据框、矩阵等学起,也可以从处理tibble学起。个人经验,对于零基础却对快速上手有迫切需求的人来说,从基础的数据结构、函数一点点学起太慢了甚至难以理解。所以还是建议按照本书的思路去学,先从完成一件事情开始。对于工具,最快速的掌握方法是先用这个工具去做事情,回过头来再看这个工具是怎么帮助你做好这件事的。
向量基础知识
向量分两类:Atomic vector和List。没错,我们常说的"列表"其实是一种向量,也叫做recursive vector。Atomic vector就是我们通常说的向量,这种类型的向量分六种类型:logical, integer, double, character, complex, raw。integer和double常被一起叫做numeric vector。
向量有两个重要属性:类型和长度。用来查看的函数分别是:typeof()和length()。
Atomic vectors中元素值必须是同一种类型,例如都是character或者都是logical,这个问题之所以值得注意,是因为向量默认将其元素都隐式强制成同种类型的行为可能在你注意不到的地方给你带来麻烦。List则没有这种要求,它的元素可以是任意类型,很灵活。
向量还可以包含属性形式的任意附加元数据。这些属性用于创建基于附加行为的augmented vectors。augmented vectors有三种重要类型:基于integer vectors的Factor;基于numeric vectors的Date和Date-time;基于lists的Data frames和tibbles。
NULL是一个对象,这个对象用来表示一个vector的缺失,正如NA可以用来表示向量中元素的缺失一样。
网友评论