文档章节

R语言的基本数据结构

mrmusic
 mrmusic
发布于 2016/03/27 23:16
字数 875
阅读 77
收藏 1

1、向量

向量是用于存储数值型、字符型或逻辑性数据的一维数组,执行组合功能的函数c()可用来创建向量

下面创建向量a,并对其进行运算

> a<-c(2,3,4)
> a
[1] 2 3 4
> a*a
[1]  4  9 16

> a*(-a)
[1]  -4  -9 -16

2、矩阵

矩阵是一个二维数组只要每个元素拥有相同的模式,可通过函数matrix创建矩阵

一般的格式:newmatrix<-matrix(vector,nrow=numbers_of_rows,ncol=number_of_columns,byrow=logical_value,dimnames=list(char_vector_rownames,char_vector_colnames))

上面的各个参数解释:

vector:表示是一个向量,包含了矩阵的元素

nrow和ncol用以指定行和列的维数

dimnames包 列名含了可选的、以字符向量表示的行名

byrows表示矩阵式按行填充(byrows=TRUE)还是按列填充(byrows=FALSE).默认按行

1、创建一个矩阵

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

2、按行填充

> cells<-c(1,2,3,4)
> rnames<-c("R1","R2")
> cnames<-c("C1","C2")
> y1<-matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))
> y1
   C1 C2
R1  1  2
R2  3  4
3、按列填充

> y2<-matrix(cells,nrow=2,ncol=2,byrow=FALSE,dimnames=list(rnames,cnames))
> y2
   C1 C2
R1  1  3
R2  2  4

3、数组

关于数组这个东西,基本上的语言里都有这个东西,不多解释了

用法:newarray<-array(vector,dimensions,dimnames)

vector:向量,也是数组中的数据.

dimensions是一个数值型向量,给出了各个维度下标的最大值

dimnames是可选的,各维度名称的标签列表

下面创建一个2*3*4的数组

> dim1<-c("A1","A2")
> dim2<-c("B1","B2","B3")
> dim3<-c("C1","C2","C3","C4")
> x=array((1:24),c(2,3,4),dimnames=list(dim1,dim2,dim3))
> x
, , 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

4、数据框

数据框这个东西应该是R特有的。是R语言最常处理的数据结构

用法:data.frame(col1,col2,col3,...)其中列向量col1,col2,col3....可以是任何类型.

> num<-c(2,4,6,8)
> code<-c("mysql","java","mongodb","python")
> state<-c("TRUE","FALSE","TRUE","FALSE")
> newdataframe<-data.frame(num,code,state)
> newdataframe
  num    code state
1   2   mysql  TRUE
2   4    java FALSE
3   6 mongodb  TRUE
4   8  python FALSE
> class(newdataframe)
[1] "data.frame"


5、因子

类别(名义型)变量和有序类别(有序性)在R中成为因子,因子在R中是非常重要的存在,因为它决定了数据的分析方式以及如何进行视觉呈现。

我不知道怎么用文字解释了.......

6、列表

列表是R语言数据类型最复杂的一种,就是一些对象的有序集合,允许我们整合若干对象到单个对象名下

mylist<-list(object1,object2,object3......)

其中object可以是上面说的任何一种结构

下面这个例子可以说列表就是个大杂烩吧。

> a<-"I LOVE python"
> b<-c(1,2,3,4)
> c<-matrix(1:4,nrow=2)
> d<-c("one","two","three")
> mylist<-list(title=a,sort=b,c,d)
> mylist
$title
[1] "I LOVE python"

$sort
[1] 1 2 3 4

[[3]]
     [,1] [,2]
[1,]    1    3
[2,]    2    4

[[4]]
[1] "one"   "two"   "three"




最后再说R语言中的美元符号$可以表示是取某一列的含义,而PHP中是变量名。。。









© 著作权归作者所有

mrmusic
粉丝 11
博文 34
码字总数 23901
作品 0
数据库管理员
私信 提问
R语言入门 – 什么是R语言,为什么选择R语言用于机器学习或数据挖掘

  R语言最近在TIOBE排名上取得了不小的进步,上升到了第13名。因为机器学习的火爆的程度和R语言特殊的语法,使得它的关注度越来越高。好多人对于R语言的特性和语法不太了解,而因我在上学的...

全栈开发
2018/03/06
0
0
大数据分析学习之使用R语言实战机器学习视频课程

大数据分析学习之使用R语言实战机器学习 网盘地址:https://pan.baidu.com/s/1Yi9H6s8EypgjJJlQmdFSg 密码:0jz3 备用地址(腾讯微云):https://share.weiyun.com/5tk6j1Z 密码:rdia9t 机器...

加班我快乐
2018/08/21
0
0
R语言基本命令,dataframe增删改查

基本操作: 查询变量类型(假设变量名是a) 在R语言中: T 代表--> True F 代表--> False 与、或运算符 读取: 读取csv文件到dataframe(字符串不当作factor类型来处理,csv的na不作处理,不...

flash胜龙
10/17
18
0
R语言构建层次分析模型不看一下吗~

作者简介 杜雨,EasyCharts团队成员,R语言中文社区专栏作者,兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化。 个人公众号:数据小魔方(微信ID:datamofang) ,“数据小...

R语言中文社区
2018/05/13
0
0
给我两小时!带你发动R语言数据挖掘的高铁,一往直前!

主题: 数据挖掘快速上手之R语言实践 随之DT时代的到来,传统的统计分析方法已经不能解决海量高维数据,如何运用数据挖掘手段对复杂数据进行数据处理、数据可视化、数据建模及模型解读是每一...

李晓文
2017/04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka实战(五) - 核心API及适用场景全面解析

1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处...

JavaEdge
今天
11
0
实现线程的第三种方式——Callable & Future

Callable Runnable 封装一个异步运行的任务, 可以把它想象成为一个没有参数和返回值的异步方 法。Callable 与 Runnable 类似, 但是有返回值。Callable 接口是一个参数化的类型, 只有一 个...

ytuan996
今天
12
0
OSChina 周六乱弹 —— 不要摁F了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 朴树写的词曲都给人一种莫名的失落感,不过这首歌他自己却没有唱,换成赵传这种高音阶嘶喊的确很好,低沉但却有力,老男人的呐喊...

小小编辑
今天
24
1
Android Binder机制 - interface_cast和asBinder讲解

研究Android底层代码时,尤其是Binder跨进程通信时,经常会发现interface_cast和asBinder,很容易被这两个函数绕晕,下面来讲解一下: interface_cast 下面根据下述ICameraClient例子进行分析...

天王盖地虎626
昨天
13
0
计算机实现原理专题--存储器的实现(二)

计算机实现原理专题--存储器的实现(一)中描述了一种可以记住输入端变化的装置。现需要对其功能进行扩充,我们将上面的开关定义为置位,下面的开关定义为复位,然后需要增加一个保持位,当保...

FAT_mt
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部