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. 【转载】GitHub 标星 1.2w+,超全 Python 常用代码合集,值得收藏!

    本文转自逆袭的二胖,作者二胖 今天给大家介绍一个由一个国外小哥用好几年时间维护的 Python 代码合集.简单来说就是,这个程序员小哥在几年前开始保存自己写过的 Python 代码,同时把一些自己比较 ...

  2. ubuntu修改时间为北京时间

    ubuntu修改时间为北京时间 查看当前时区root@ubuntu:/# date -R修改时区root@ubuntu:/# tzselect复制文件到/etc目录下root@ubuntu:/# cp ...

  3. oracle group by rollup实现小计、合计

    SQL合计汇总实现数据N+1条显示: 注意group by rollup((ename, job, empno))!!! select decode(grouping(ename) + groupin ...

  4. a++和++a的区别

    a++是先执行表达式后再自增,执行表达式时使用的是a的原值.++a是先自增再执行表达示,执行表达式时使用的是自增后的a.例:int a=0printf("%d",a++); //输 ...

  5. c++实现直接插入排序

    基本概念 直接插入排序是一种最简单的排序方法,排序过程为:先将第一个元素看作是只有一个元素的有序子表,然后从第二个元素开始,将待排序元素依次插入到前面有序的子表中,直到全部排序完毕.在整个过程中,前面 ...

  6. gitlab 安装、配置

    gitlab 安装.配置 对于企业级的私有 git 仓库,gitlab 是个不错的选择. 今天就来说说 gitlab 的安装.配置. 系统配置建议:最低双核 4G 内存. 当前针对 gitlab 版本 ...

  7. 项目常用的几个mysql函数

    1.find_in_set函数 find_in_set(str,strlist); str是一个字符串 strlist是字符串列表--一个有多个子链被“,”分开的字符串 有多种情况: a.str为nu ...

  8. IIS发布出现[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

    一,原因是系统DSN的配置平台位数跟系统的位数不一致(PS:确认你有没有安装对应系统的驱动.本文是34位和64位驱动都安装了) 二,解决方法,我们必须在 <控制面板---管理工具>找到对应 ...

  9. Spring+Spring MVC+Hibernate框架搭建实例

    前言:这里只是说明整个搭建流程,并不进行原理性的讲解 一 下面所需要用到的数据库配置: 数据库方面,使用mysql创建一个users表,具体代码如下: 1 2 3 4 5 6 7 8 9 10 11 ...

  10. 完整的JavaScript包括三部分、script标签、JavaScript的基本语法以及变量和字面量的关系

    完整的JavaScript包括三大部分: -ECMAScript   JavaScript的开发规范:提供核心语言功能 -DOM   document object model   文档对象模型:提供 ...