R语言入门学习3——矩阵

1.矩阵生成

matrix()函数
as.matrix() 将对象强制转换为矩阵
is.matrix()判断对象是否为矩阵
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)
nrow/nr为矩阵的行数,ncol/nc为矩阵的列数,默认值为1,
byrow,TRUE表示将数据按行放置,默认为FALSE,按列放置
dimnames,行和列的名称

> mdat <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE,
                     dimnames = list(c("row1", "row2"),
                                      c("C.1", "C.2", "C.3")))
> mdat
     C.1 C.2 C.3
row1   1   2   3
row2  11  12  13

> matrix(1:10,2,5)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10

#生成空矩阵
> A<-matrix(nr=2,nc=5) #2行5列
> #赋值
> A[1,1]<-1
> A[1,5]<-5
> A[2,1]<-6
> A[2,5]<-10
> A
     [,1] [,2] [,3] [,4] [,5]
[1,]    1   NA   NA   NA    5
[2,]    6   NA   NA   NA   10

#dim获取对象的维度
> dim(A)
[1] 2 5

#nrow 获取行数;ncol获取列数
> nrow(A)
[1] 2
> ncol(A)
[1] 5

2.矩阵运算

(1)矩阵的合并
rbind()按行合并(上下拼接),需要相同的列数

>  A<-as.matrix(c(1:5))
> B<-as.matrix(c(100:104))
> A
     [,1]
[1,]    1
[2,]    2
[3,]    3
[4,]    4
[5,]    5
> B
     [,1]
[1,]  100
[2,]  101
[3,]  102
[4,]  103
[5,]  104

> rbind(A,B)
      [,1]
 [1,]    1
 [2,]    2
 [3,]    3
 [4,]    4
 [5,]    5
 [6,]  100
 [7,]  101
 [8,]  102
 [9,]  103
[10,]  104

cbind() 按列合并(左右拼接),需要相同的行数

> cbind(A,B)
     [,1] [,2]
[1,]    1  100
[2,]    2  101
[3,]    3  102
[4,]    4  103
[5,]    5  104

(2)矩阵的拉直,as.vector(),将矩阵按列拉直

> dat<-cbind(A,B)
> as.vector(dat)
 [1]   1   2   3   4   5 100 101 102 103 104

(3)矩阵行列的命名
dim()获得矩阵维度
dimnames()获得矩阵行列的名称
rownames() 获得矩阵行名,或命名行名
colnames()获得矩阵列名,或命名列名

> dat
     [,1] [,2]
[1,]    1  100
[2,]    2  101
[3,]    3  102
[4,]    4  103
[5,]    5  104
> dim(dat)
[1] 5 2
> dimnames(dat)  #此时无行名和列名
NULL
> rownames(dat)<-paste0("row.",1:5)  ##命名行
> colnames(dat)<-paste0("col.",1:2)  ##命名列
> dat
      col.1 col.2
row.1     1   100
row.2     2   101
row.3     3   102
row.4     4   103
row.5     5   104
> rownames(dat)
[1] "row.1" "row.2" "row.3" "row.4" "row.5"
> colnames(dat)
[1] "col.1" "col.2"
> dimnames(dat)
[[1]]
[1] "row.1" "row.2" "row.3" "row.4" "row.5"

[[2]]
[1] "col.1" "col.2"

(4)矩阵下标
要访问矩阵某个元素或为该元素赋值的时候,只要写出矩阵名和方括号,中间有逗号分开两个下标

> dat
      col.1 col.2
row.1     1   100
row.2     2   101
row.3     3   102
row.4     4   103
row.5     5   104
> dat[3,2]  #第3行,第2列的值
[1] 102
> dat[3,2]<-500   #第3行,第2列的值改为500
> dat
      col.1 col.2
row.1     1   100
row.2     2   101
row.3     3   500
row.4     4   103
row.5     5   104
> dat[1:3,1]   ##第1:3行,第1列
row.1 row.2 row.3 
    1     2     3 

若是想要去掉矩阵对应行和/或列,用负号即可

> dat2<-dat[-1,]  ##去除矩阵的第一行
> dat2
      col.1 col.2
row.2     2   101
row.3     3   500
row.4     4   103
row.5     5   104
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • 20200510·Kony·Win10 矩阵 矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻...
    甜心嘎的大草莓阅读 432评论 0 2
  • 2.2.2 矩阵 矩阵(matrix)是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。函数...
    zjh9280阅读 461评论 0 0
  • 开始 开始R语言的学习已经有一段时间了,正在按计划开始学习,虽然年底有点忙还是坚持按计划进行学习,这是学习的第一...
    巍书生阅读 1,039评论 0 1
  • 一、学习笔记 1.向量 向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数 c() 可用来创建...
    smallfen阅读 420评论 3 0
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 125,049评论 2 7