首先声明,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. android Canvas drawText 文字居中

    1首先利用canvas获取画布的宽高, //获取屏幕的宽和高int width = canvas.getWidth();int height = canvas.getHeight(); 2获取文字的宽 ...

  2. JAVA_build_ant_mapper

    ant里面mapper的详细用法   ant里面mapper标签是和fileset配合使用的,目的就是把fileset取出的文件名转成指定的样式.其实看懂官方文档后,感觉真心没啥好写的.但是还是写一下 ...

  3. zlog使用手册,小靠谱啊

    http://hardysimpson.github.io/zlog/UsersGuide-CN.html Chapter 1 zlog是什么? zlog是一个高可靠性.高性能.线程安全.灵活.概念清 ...

  4. 使用Volley StringRequest Get的方式进行发票查询操作

    //进行发票查询 btnFpSelect.setOnClickListener(btnFpSelectClickListener); private OnClickListener btnFpSele ...

  5. android dom方式创建xml

    http://blog.csdn.net/nxh_love/article/details/7085174 在android dom 解析xml方式文章中,简单介绍了dom解析xml的应用.今天在原文 ...

  6. cf B. Sereja and Suffixes

    http://codeforces.com/contest/368/problem/B 从后往前找一遍就可以. #include <cstdio> #include <cstring ...

  7. 自制单片机之八……USB-ISP下载线

    现在的笔记本包括台式机都渐渐地舍弃了并口.串口:很多网友也跟我说,台式没有并口了,下载线没法用了,让我帮他想想办法.看来做个USB-ISP下载线是势在必行了. 在网上搜了下,主要有两种方案,一种是用F ...

  8. C#反射 获取程序集信息和通过类名创建类实例(转载)

    C#反射获取程序集信息和通过类名创建类实例 . System.Reflection 命名空间:包含通过检查托管代码中程序集.模块.成员.参数和其他实体的元数据来检索其相关信息的类型. Assembly ...

  9. codility上的问题 (23)Chi 2012

    这个题也比较有意思.意思是给定一个数组A,长度为M,里面都是正整数,代表每块地形的高度.现在要测试一种加农炮,给定一个炮弹的高度H, 如果存在最小的I,满足0 < I <  M,满足A[I ...

  10. ubuntu记录

    1. gleboneblack OMAPES=4.x ANDROID_ROOT_DIR=$HOME/aosp W=1 install /bin/sh: 5: ./install.sh: Permiss ...