R语言有六种基本的数据结构(或者说数据类型吧)。根据数据的维度同质/异质可分为5种数据类型,最后再介绍一种特殊的类型“因子”。

  同质 异质
1维 原子向量 列表
2维 矩阵 数据框
n维 数组  

对于各种类型的具体操作,本文不展开讲。本文仅介绍它们各自的一些生成方式。

 (1)原子向量

一个有趣的事情:R中最小的单位并不是“数”,而是“向量”。

例如:

> n=
> is.vector(n) #判断n的数据类型是否为向量
[] TRUE

对于生成一个向量,我们可以有多种方式:

> :
[]
> :
[]
> seq(,,by=)
[]
> c(,,)
[]

(2)列表

列表可以包含数字、字符串、向量,甚至是列表、矩阵、函数。由list()创建。

> a=list(,c(,,),'sfd',T,list(,))
> a
[[]]
[] [[]]
[] [[]]
[] "sfd" [[]]
[] TRUE [[]]
[[]][[]]
[] [[]][[]]
[]

(3)矩阵

二维。由matrix()创建。

> a=matrix(seq(,,by=0.9),nrow=,byrow=TRUE)  #行数为4;按行输入(缺省按列输入)
> a
[,] [,] [,]
[,] 0.0 0.9 1.8
[,] 2.7 3.6 4.5
[,] 5.4 6.3 7.2
[,] 8.1 9.0 9.9

(4)数据框

数据帧(Data Frame,有人也叫数据框)也是二维结构,其中每一列包含一个变量的所有值。
数据帧的性质:

  • 行名称唯一。
  • 列名称非空。
  • 存储在数据帧中的数据可以是数字,因子或字符类型。
  • 每列应包含相同数量的数据项。(保证其为二维结构)

生成数据帧由data.frame()创建。

> a=data.frame(name=c('Mike','Jane','King','Tom'),height=c(,,,),weight=c(,,,))
> a
name height weight
Mike
Jane
King
Tom

(5)数组

数组可以是多维的。由函数array()创建。

> a=array(c(,,,,),dim=c(,,))
> a
, , [,] [,] [,]
[,]
[,]
[,]
[,] , , [,] [,] [,]
[,]
[,]
[,]
[,]

(6)因子

因子是用于对数据进行分类并将其存储为级别的数据对象。 它们可以存储字符串和整数。 它们在具有有限数量的唯一值的列中很有用。 像“男性”,“女性”和True,False等。它们在统计建模的数据分析中很有用。
使用factor()函数通过将向量作为输入创建因子。

> a=c(T,F,F,T,T,T,F)
> a
[] TRUE FALSE FALSE TRUE TRUE TRUE FALSE
> factor(a)
[] TRUE FALSE FALSE TRUE TRUE TRUE FALSE
Levels: FALSE TRUE

也可由数据帧创建因子:

> a=data.frame(name=c('Mike','Jane','King','Tom'),height=c(,,,),weight=c(,,,))
> a
name height weight
Mike
Jane
King
Tom
> a$name
[] Mike Jane King Tom
Levels: Jane King Mike Tom

参考资料:

1.《高级R语言编程指南》哈德利·威克汉姆(Hadley Wickham)著

2.  https://www.w3cschool.cn/r/        R语言教程_w3cscool

最新文章

  1. C#动态编译引擎-CS-Script
  2. jQuery EasyUI教程之datagrid应用(三)
  3. AX7: HOW TO USE TABLE METHOD EXTENSION CLASS
  4. python模拟http请求
  5. thinkphp如何写find_in_set这样的orm查询封装
  6. CSS3:优雅地绘制不规则ICON
  7. ASP.NET Core 依赖注入(DI)简介
  8. 腾讯企业邮箱又一次隐藏了qq邮件列表的入口
  9. kali linux 网络渗透测试学习笔记(二)OWASP ZAP工具扫描SQL injection漏洞失败
  10. TCP/IP学习20180710-数据链路层-ICMP协议
  11. Arch Linux中安装Anaconda
  12. Confluence 6 临时目录(安装目录)
  13. 编写UEditor插件
  14. linux服务器上安装python 3.6.3
  15. jmeter 参数化测试
  16. 【BZOJ1820】[JSOI2010]快递服务(动态规划)
  17. hduPiggy-Bank(完全背包)
  18. HDUOJ----旋转的二进制
  19. MQTT的学习研究(五) MQTT moquette 的 Blocking API 发布消息服务端使用
  20. spring下应用@Resource, @Autowired 和 @Inject注解进行依赖注入的差异

热门文章

  1. 用roles部署nginx
  2. 部署php程序报错解决---TP框架
  3. Opencv中copyTo()函数的使用方法
  4. 【ABAP系列】SAP ABAP7.40新语法简介第一篇
  5. 【Qt开发】Win7 64位qt-windows-x86-msvc2015-5.6.0 DLL依赖库打包
  6. 【电子电路技术】短波红外InGaAs探测器简析
  7. Java第六周实验+总结
  8. CentOS7之SVN服务配置
  9. [转帖]虚拟内存探究 -- 第二篇:Python 字节
  10. Packet flow in l2(receive and transmit)