东哥和刘亦菲的故事
1. 问题
R 语言作为统计学家御用语言,数据类型和语法规则和常见的给程序员使用的编程语言多有不同。不能说人家坏,只是不适合。
就像东哥就是刘亦菲永远都得不到的人(^_−)☆。
2. 分析
先丢下咱的刘亦菲,继续聊聊 R 语言这些怪异的数据类型。下面这个表格很清楚的显示了 R 语言常见复合数据类型
有些数据是单一数据类型(Homogeneous),有些是复合数据类型(Heterogeneous)。
2.1. Vector
Vector 是 R 里面最基础的数据类型。简单的话可以理解成一组同质数据组成的数组。 Vector 可以用c
函数创建。c
代表 combine,可以把多个数据合并成一个数据。例如
Vector 可以进行集合运算。比如
2.2. Factor
Factor 可以看做 Integer Vector 加上 Label。比如
可以看出,最后的 f 是整数类型的一个 Vector,实质上是1/2/3/
,但是用 Level 里面的 Label 做了标记,界面更友好。
艾玛,天知道可视化的时候 factor 帮了多大忙!
2.3. matrix
matrix 是单一类型组成的二维变量,比如
因为 a/b 是字符变量,1/2 也只好委曲求全。
2.4. List
List 可以包含多种数据类型,来者不拒,摘到篮子里的都是菜。比如
可见,指定命名就可以用$
访问,否则就只能用[[]]
访问。
2.5. DataFrame
DataFrame 不用多说,R 里面最常用的数据类型。可以简单的理解为 Excel 表格的数据库,各列可以有不同类型的数据,但列内类型必须一致。
比如
3. 转换
了解了规则,就了解了转换规则。
比如,list 是 1D 的,但可以包含复合类型。转换的时候最好用unlist
转换成 vector,再做其他考虑。
vector 性格单纯,可做多样使用。最常见的是转换成 DataFrame,比如
4. 总结
今天我们大致总结了 R 的数据类型及其转换方法。虽然 R 比较怪,但仔细想想,谁又不怪呢?人群中,你我皆是异类。
就比如,东哥是刘亦菲永远都得不到的人,所以在东哥看来,刘亦菲也挺怪的。
所以,东哥和刘亦菲之间有什么故事?没有,互相 Diss 罢。
如果她能 Diss 到我的话。
5. 交流
独学而无友则孤陋寡闻。现有「数据与统计科学」微信交流群,内有数据行业资深从业人员、海外博士、硕士等,欢迎对数据科学、数据分析、机器学习、人工智能有兴趣的朋友加入,一起学习讨论。
大家可以扫描下面二维码,添加荔姐微信邀请加入,暗号:机器学习加群。
Lily
6. 扩展
6.1. 参考文献
Dr. P. Prakash 和 A. S. K. Rao, R Data Structures and Algorithms. 2016.
H. Wickham 和 G. Grolemund, R for data science: import, tidy, transform, visualize, and model data, First edition. Sebastopol, CA: O’Reilly, 2016.
Data2Science
本文使用 mdnice 排版
版权声明: 本文为 InfoQ 作者【张利东】的原创文章。
原文链接:【http://xie.infoq.cn/article/88096fc1eb24ecaf1bfc05cb0】。文章转载请联系作者。
评论 (1 条评论)