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

R语言-六大数据结构的更多相关文章

  1. R语言的数据结构

    首先声明,R语言对大小写敏感. 一.向量 vector类型可以存储数字.字符和逻辑类型.构建函数为C(): > a <- c(1,2,3,4) > b <- c('dau',' ...

  2. R语言中数据结构

    R语言还是有点古老感觉,数据结构没有Python中那么好用.以下简单总结一下R语言中经常使用的几个数据结构. 向量: R中的向量能够理解为一维的数组,每一个元素的mode必须同样,能够用c(x:y)进 ...

  3. 从零开始系列-R语言基础学习笔记之二 数据结构(二)

    在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...

  4. 从零开始系列--R语言基础学习笔记之一 环境搭建

    R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...

  5. R语言分析(一)-----基本语法

      一, R语言所处理的工作层: 解释一下: 最下面的一层为数据源,往上是数据仓库层,往上是数据探索层,包括统计分析,统计查询,还有就是报告 再往上的三层,分别是数据挖掘,数据展现和数据决策. 由上图 ...

  6. 【计理05组01号】R 语言基础入门

    R 语言基本数据结构 首先让我们先进入 R 环境下: sudo R 赋值 R 中可以用 = 或者 <- 来进行赋值 ,<- 的快捷键是 alt + - . > a <- c(2 ...

  7. 第二章 R语言数据结构

    R语言存储数据的结构包括:标量.向量.矩阵.数组.数据框和列表:可以处理的数据类型包括:数值型.字符型.逻辑型.复数型和原生型. 数据结构 向量 向量是用来存储数值型.字符型或逻辑型数据的一维数组.单 ...

  8. R+openNLP︱openNLP的六大可实现功能及其在R语言中的应用

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- openNLP是NLP中比较好的开源工具,R语 ...

  9. R语言入门 :基本数据结构

    1.向量 向量是R语言中最基本的数据类型,在R语言中没有单独的变量. (1)  创建向量 R语言中可以用 = 或者 <- 来赋值. 向量名 <- 向量 或  向量名 = 向量 向量的创建方 ...

随机推荐

  1. wpf passwordbox控件 光标移到最后

    /// <summary> /// 设置光标位置 /// </summary> /// <param name="passwordBox">&l ...

  2. opencv的频域滤波

    下面是频域滤波示例程序: 在本程序中,共有五个自定义函数,分别是: 1. myMagnitude(),在该函数中封装了Opencv中的magnitude函数,实现对于复数图像的幅值计算. 2. dft ...

  3. Ubuntu环境配置机器安装驱动

    ubuntu_environment_config.md thead > tr > th { text-align: left; border-bottom: 1px solid; } t ...

  4. Java基础/网络经验

    一.Java新特性好文--掘金 1.Java8 新特性指导手册 2.Java 11 已发布,String 还能这样玩 二.Java避坑 1.为什么阿里巴巴不建议在for循环中使用"+&quo ...

  5. C#静态调用带有SoapHeader验证的WebServices

    转自:http://blog.csdn.net/u012995964/article/details/54562111 本文记录带有SoapHeader验证的WebServices服务创建.部署及C# ...

  6. chrome插件--安装以及问题记录

    vue-devtools 插件网址下载 问题1 Vue.js is detected on this page. Devtools inspection is not available becaus ...

  7. ICPC Asia Nanning 2017 F. The Chosen One (大数、规律、2的k次幂)

    Welcome to the 2017 ACM-ICPC Asia Nanning Regional Contest.Here is a breaking news. Now you have a c ...

  8. a页面通过url传值,b页面如何接收(jquery.params.js实现)

    用于两个html页面之间的传值 我的应用场景是:用echarts在a页面做完中国地图后,点击某个省份在b页面显示某个省份的地图.(在b页面显示点击了的那个省份的地图,等于说b页面是个“容器”页) 假设 ...

  9. mysql小数和类型转换函数

    保留两位小数 SELECT ROUND( 123456789.3563898,2),TRUNCATE(123456789.3563898,2),FORMAT(123456789.3563898,2); ...

  10. mybatis一对一关联关系映射

    mybatis一对一关联关系映射 在关联关系中,有一对一,一对多,多对多三种关联关系. 一对一关系:在操作上,任意一方引入对方的主键作为外键. 一对多关系:在"多"的一方添加&qu ...