首先声明,R语言对大小写敏感。

一、向量

vector类型可以存储数字、字符和逻辑类型。构建函数为C():

> a <- c(1,2,3,4)

> b <- c('dau','wau','mau')

> a[2](R语言中的索引是从1开始)

2

>b[c(1,3)]

dau mau

>b[1:3]

dau wau mau

二、矩阵

矩阵的元素类型必须是一致的(数字型,字符型或逻辑型)。构建函数matrix(vector,nrow=行数,ncol=列数,byrow=逻辑值,dimname=list(行名,列名))

> y <- matrix(1:20,nrow=4,ncol=5)(如未指定byrow,默认按列排序)
> y
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20

> y <- matrix(1:20,nrow=4,ncol=5,byrow=TRUE)
> y
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20

三、数组

数组就是二维及以上维数的矩阵,构建函数为array(vector,dimensions,dimnames)

> dim1 <- c("A1","A2")
> dim2 <- c("B1","B2","B3")

> dim3 <- c("C1","C2","C3","C4")
> z <- array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))

> z
, , C1

B1 B2 B3
A1 1 3 5
A2 2 4 6

, , C2

B1 B2 B3
A1 7 9 11
A2 8 10 12

, , C3

B1 B2 B3
A1 13 15 17
A2 14 16 18

, , C4

B1 B2 B3
A1 19 21 23
A2 20 22 24

四、数据框

数据框可以自由组合不同类型的列(同列数据类型相同,不同列数据类型可不一样,不同的列的长度必须一样),构建函数是data.frame(col1,col2,......)

> accounut <- c('Jet','Tina','Elliot','Anna')
> level <- c(21,31,34,15)
> vip <- c(FALSE,TRUE,TRUE,FALSE)
> accountdata <- data.frame(accounut,level,vip)
> accountdata
accounut level vip
1 Jet 21 FALSE
2 Tina 31 TRUE
3 Elliot 34 TRUE
4 Anna 15 FALSE
> names(accountdata) <- c('账户名','等级数','是否VIP')
> accountdata
账户名 等级数 是否VIP
1 Jet 21 FALSE
2 Tina 31 TRUE
3 Elliot 34 TRUE
4 Anna 15 FALSE
> names(accountdata)   #查看数据框列名
[1] "账户名" "等级数" "是否VIP"
> accountdata[1,1:3]   #取第1行,第1列至第3列的数据
账户名 等级数 是否VIP
1 Jet 21 FALSE
> accountdata[,1:2]
账户名 等级数
1 Jet 21
2 Tina 31
3 Elliot 34
4 Anna 15
> accountdata[,c('账户名','等级数')]
账户名 等级数
1 Jet 21
2 Tina 31
3 Elliot 34
4 Anna 15
> accountdata$"等级数"     #取等级数的那一列,虽然取出来的数据都一样,但是类型已不是data.frame
[1] 21 31 34 15

五、列表

列表是R语言中最复杂的数据结构,它允许任何类型的数据集合在一起(与数据框不同的是,列表中不同的列允许不同的长度),创建函数为list()。

> a <- 'create a list'
> b <- c(1,2,6,33,2,45,4)
> c <- matrix(1:12,nrow=3,ncol=4)
> d <- accountdata
> mylist <- list(listname=a,"年龄"=b,c,'游戏分析'=d) # 创建列表
> mylist
$listname
[1] "create a list"

$年龄
[1] 1 2 6 33 2 45 4

[[3]]
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12

$游戏分析
账户名 等级数 是否VIP
1 Jet 21 FALSE
2 Tina 31 TRUE
3 Elliot 34 TRUE
4 Anna 15 FALSE

> mylist[[2]] #取第2个成分
[1] 1 2 6 33 2 45 4
> mylist$年龄
[1] 1 2 6 33 2 45 4

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

  1. R语言中数据结构

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

  2. R语言-六大数据结构

    R语言有六种基本的数据结构(或者说数据类型吧).根据数据的维度和同质/异质可分为5种数据类型,最后再介绍一种特殊的类型“因子”.   同质 异质 1维 原子向量 列表 2维 矩阵 数据框 n维 数组 ...

  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语言入门 :基本数据结构

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

  9. R语言中的几种数据结构

    R语言中的几种数据结构 一  R中对象的5种基本类型 字符(character) 整数 (integer) 复数(complex) 逻辑(logical:True/False) 数值(numeric: ...

随机推荐

  1. C语言基础学习基本数据类型-int类型与int变量

    int类型与int变量 针对不同的用途,C语言提供了多种整数类型.各种整数类型的区别在于所提供数值的范围,以及数值是否可以取负值. 在之前的实例中你已经看到过,int关键字用于声明整型变量. int类 ...

  2. HTML&CSS基础学习笔记1.23-表单的文本域和下拉列表

    文本域 <textarea>标签定义多行的文本输入控件. 平时在网页上的一些需要输入比较多的内容的输入框,比如回复帖子,回答问题等,都可以用<textarea>标签. < ...

  3. HTML&CSS基础学习笔记1.11—导航栏

    上文我们介绍到的<a>标签,由于<a>标签可以用来跳转,所以我们可以拿<a>标签来生成网页的导航栏. 其实在实际运用中,<a>标签就经常会被用来生成导航 ...

  4. 为什么针对XML的支持不够好?如何改进?

    为什么针对XML的支持不够好?如何改进? 物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurati ...

  5. Java并发编程--同步容器

    BlockingQueue 阻塞队列 对于阻塞队列,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤 ...

  6. build.prop修改详细说明

    用RE进入/system/挂载读写,找到build.prop复制到/sdcarrd进行修改比较保险.也可以挂载读写后,直接选择用文本编辑器打开,进行编辑.乱改有风险,修改需谨慎.1.# begin b ...

  7. Android 之 Window、WindowManager 与窗口管理

    其实在android中真正展示给用户的是window和view,activity在android中所其的作用主要是处理一些逻辑问题,比如生命周期的管理.建立窗口等.在android中,窗口的管理还是比 ...

  8. [LeetCode 122] - 买入与卖出股票的最佳时机II(Best Time to Buy and Sell Stock II)

    问题 假设你有一个数组,其中的第i个元素表示一只股票在第i天的价格. 设计一个算法找出最大的利润值.你可以进行任意多次的交易(即多次的卖出并买入一份股票).你不能在同一时间进行多次交易(即你必须在再次 ...

  9. BZOJ2213: [Poi2011]Difference

    2213: [Poi2011]Difference Time Limit: 10 Sec  Memory Limit: 32 MBSubmit: 343  Solved: 108[Submit][St ...

  10. 【转】Android ListView长按事件触发点击事件

    原文网址:http://blog.csdn.net/twlkyao/article/details/17301609 算法在实现ListView的onItemLongClickListener的时候, ...