R语言的数据结构
首先声明,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语言的数据结构的更多相关文章
- R语言中数据结构
R语言还是有点古老感觉,数据结构没有Python中那么好用.以下简单总结一下R语言中经常使用的几个数据结构. 向量: R中的向量能够理解为一维的数组,每一个元素的mode必须同样,能够用c(x:y)进 ...
- R语言-六大数据结构
R语言有六种基本的数据结构(或者说数据类型吧).根据数据的维度和同质/异质可分为5种数据类型,最后再介绍一种特殊的类型“因子”. 同质 异质 1维 原子向量 列表 2维 矩阵 数据框 n维 数组 ...
- 从零开始系列-R语言基础学习笔记之二 数据结构(二)
在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...
- 从零开始系列--R语言基础学习笔记之一 环境搭建
R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...
- R语言分析(一)-----基本语法
一, R语言所处理的工作层: 解释一下: 最下面的一层为数据源,往上是数据仓库层,往上是数据探索层,包括统计分析,统计查询,还有就是报告 再往上的三层,分别是数据挖掘,数据展现和数据决策. 由上图 ...
- 【计理05组01号】R 语言基础入门
R 语言基本数据结构 首先让我们先进入 R 环境下: sudo R 赋值 R 中可以用 = 或者 <- 来进行赋值 ,<- 的快捷键是 alt + - . > a <- c(2 ...
- 第二章 R语言数据结构
R语言存储数据的结构包括:标量.向量.矩阵.数组.数据框和列表:可以处理的数据类型包括:数值型.字符型.逻辑型.复数型和原生型. 数据结构 向量 向量是用来存储数值型.字符型或逻辑型数据的一维数组.单 ...
- R语言入门 :基本数据结构
1.向量 向量是R语言中最基本的数据类型,在R语言中没有单独的变量. (1) 创建向量 R语言中可以用 = 或者 <- 来赋值. 向量名 <- 向量 或 向量名 = 向量 向量的创建方 ...
- R语言中的几种数据结构
R语言中的几种数据结构 一 R中对象的5种基本类型 字符(character) 整数 (integer) 复数(complex) 逻辑(logical:True/False) 数值(numeric: ...
随机推荐
- 类和对象:一些相关的BIF - 零基础入门学习Python040
类和对象:一些相关的BIF 让编程改变世界 Change the world by program 一些类和对象相关的 BIF 今天我们来谈谈跟类和对象相关的一些BIF(内置函数): issubcla ...
- iOS App 自定义 URL Scheme 设计(转自COCOACHINA)
在 iOS 里,程序之间都是相互隔离,目前并没有一个有效的方式来做程序间通信,幸好 iOS 程序可以很方便的注册自己的 URL Scheme,这样就可以通过打开特定 URL 的方式来传递参数给另外一个 ...
- google jam 比赛题(设计有问题)
题目: Problem Do you know how to read the phone numbers in English? Now let me tell you. For example, ...
- Linux 杀死挂起的进程
在用管理员执行一个命令后,用Ctrl+Z把命令转移到了后天.导致无法退出root的. 输入命令:exit终端显示:There are stopped jobs. 解决方法:方法一.输入命令:jobs终 ...
- c语言typedef之数组运用
#include <stdio.h> #include <stdlib.h> typedef ];//int arr[4]取一个别名 arr b c就是int b[4] int ...
- Bloom Filter 算法具体解释
Bloom Filter 算法 Bloom filter是由Burton Bloom 在1970年提出的,其后在P2P上得到了广泛的应用.Bloom filter 算法可用来查询某一数据是否在某一数据 ...
- AngularJS移动开发中的坑汇总
使用AngualrJs开发移动App已经快半年了,逐渐积累了非常多AngularJS的问题,特别是对于用惯了Jquery的开发人员,转到AngularJS还是须要克服非常多问题的.不像Jquery那样 ...
- Oracle CheckPoint进程
在实例经过分配内存结构,加载控制文件后,然后要打开数据库的时候,需要做到控制文件,数据文件,联机重做日志保持相互状态一致性,数据库才可以打开.当数据库发生实例不正常关闭时(比如系统掉电或者Shutdo ...
- 注意:"AspNetPager”的控件“AspNetPager1”必须放在具有 runat=server 的窗体标记内
应加: <form id="form1" runat="server"> </form> 否则一开始什么也不显示,页面控件看不见,加上a ...
- SQL Server还原和一些小发现
1.当数据库已经建好在DB里,SQL Server 2005 和 SQL Server 2008使用.Bak文件还原的时候,会出现 error : "The backup set holds ...