生成一个新矩阵,多用一些参数吧这次:

x <- c(12,13,14,15)

rname <- c("R1","R2")

nname <- c("C1","C2")

newmatrix <- matrix(x,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rname,nname))

##nrow 是规定矩阵有几行

##ncol是规定矩阵有几列

##byrow是规定你的矩阵是一行一行的去填充。(默认是一列一列的去填充)

##dimnames是规定行名和列名

ok解决

  C1      C2

R1 12  13

R2 14  15

newmatrix[2,]     ##有14 15输出 ,很简单有木有

newmatrix[1,2]  ##输出13,先行后列读入

可以在复杂一点,把两个或多个矩阵组合在一起,就是-----“多维数组“

使用array函数生成

fristarray <- array(1;24,c(3,2,4))    #还有别的参数没写

, , 1                       

[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6

, , 2

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

, , 3

[,1] [,2]
[1,] 13 16
[2,] 14 17
[3,] 15 18

, , 4

[,1] [,2]
[1,] 19 22
[2,] 20 23
[3,] 21 24

可以看出来c(3,2,4)里面的数字都是什么意思

第一个:每一层数据有几行

第二个:每一层数据有几列

第三个:共有几层

还可设置名字

dim1 <- c("A1","A2","A3")

dim2 <- c("B1","B2")

dim3 <- c("C1","C2","C3","C4")

oo <- 1:24

renewarray <- array(data=oo,dim=c(3,2,4),dimnames = list(dim1,dim2,dim3))

##data如果多的话就要data=c(数据1,数据2,...)

##生成下面的东西

, , C1

B1 B2
A1 1 4
A2 2 5
A3 3 6

, , C2

B1 B2
A1 7 10
A2 8 11
A3 9 12

, , C3

B1 B2
A1 13 16
A2 14 17
A3 15 18

, , C4

B1 B2
A1 19 22
A2 20 23
A3 21 24

找22这个数字要输入什么呢?   renewarray[1,2,4]

先输入第几行,然后是第几列,最后是第几层,22这个数是第一行、第二列、第四层。

c(3,2,4)这个参数最后会成为数组的dim属性

输入attributes(renewarray)

会有下面的输出

$dim

[1] 3 2 4

t<-array(1:24)           #一维数组 也就是向量

tt <- array(1:24,c(3,8))      #二维数组  也就是矩阵

ttt <- array(1:24,c(3,2,4))       #三维数组

还可以这样:

dim(t) <- c(3,2,4)        #生成一个三维数组

矩阵的加法、乘法

凡是跟线性代数有关的东西都是从解方程组这么一个实际的问题简化出来的,矩阵其实就是方程组系数的简化写法

a <- matrix(1:16,byrow=TRUE,nrow=4)
b <- matrix(1:16,nrow=4)
c <- a+b    #加法就是正常的加号就能解决
d=a%*%b    #这是矩阵的乘法,符号是‘%*%’,矩阵的乘法需要满足a的行数与b的列数相等
e=a*b     #这个对位相乘,不是正规的矩阵乘法,是(1,1)*(1,1)    (2,2)*(2,2)这样的乘法

#########################################################下面是一些日常总结#########################################################

a <- matrix(1:16,byrow=TRUE,nrow=4)
b <- matrix(1:16,nrow=4)
c <- a+b
d=a%*%b       ##矩阵乘法
e=a*b

x <- c(1,2,3,4)
x <- rep(x,c(5,3,4,2)) #把x中的元素分别repeat:5 3 4 2次

s <- c(rep(1,25)) #把1重复25次

ss <- matrix(s,nrow=5) #再把s的数据拿来生成一个5*5的矩阵

hang=nrow(ss) #看ss有几行
lie=ncol(ss) #看ss有几列
y=1
for (i in 1:hang){
for (e in 1:lie){

x<-1/(i+e-1)
y<-c(y,x)
print (y)
}
}

y=y[-1]
result <- matrix(y,nrow=5)
result

print (solve(result)) #求这个矩阵的逆矩阵
eigen(result) #求这个矩阵的特征值和特征向量

R语言入门视频笔记--3-1--矩阵与数组的更多相关文章

  1. R语言入门视频笔记--9--随机与数据描述分析

    古典概型的样本总量是一定的,且每种可能的可能性是相同的, 1.中位数:median(x) 2.百分位数:quantile(x)或者quantile(x,probe=seq(0,1,0.2)) #后面这 ...

  2. R语言入门视频笔记--10--数据挖掘

    这里来挖掘超市购物车数据. 名词: 1.挖掘数据集:购物篮数据 2.挖掘目标:关联规则 3.关联规则:牛奶=>鸡蛋[支持度=2%,置信度=60%] 4.指出度:分析中的全部事务的2%同时购买了牛 ...

  3. R语言入门视频笔记--5--自定义函数

    自定义函数 你可以输出一段代码,创建一个你自己定义的函数 蛋是如果你两个自定义函数的名字重复的话,后面的会把前面的替换掉 举个栗子: hanshu1 <- function(x)  sqrt(v ...

  4. R语言入门视频笔记--4--R的数据输入

    输入 R的数据输入可以大体三种: 1.键盘输出 2.从文本文件导入 3.从Excel中导入数据 一.从键盘输入 首先创建一个数据框,玩玩嘛,瞎建一个 mydata <- data.frame(a ...

  5. R语言入门视频笔记--8--数据框

    一.数据框 使用data.frame函数生成数据框 x <- c(20122014101:20122014128) y <- rnorm(28,85,18) #生成28个平均数为85,方差 ...

  6. R语言入门视频笔记--6--R函数之cat、format、switch函数

    一.cat 猫  怎么就变成一个输出函数了呢? cat  一个输出函数,功能和print有相同之处 我们一起比较看看 1.cat(“hellow world”)或cat('hellow world') ...

  7. R语言入门视频笔记--3--列表list

    list <- (stud.id = 1234,stud.name="Tom",stud,marks=c(18,3,14,25,19)) #生成一个列表,里面有学生id,学生 ...

  8. R语言入门视频笔记--2--一些简单的命令

    一.对象 1.列举当前内存中的对象 ls() 2.删除不需要的对象 rm(某对象名称) 3.查看向量长度 length(某向量名称) 4.查看向量类型 mode(某向量名称) 二.函数 1.seq函数 ...

  9. R语言入门视频笔记--1

    一.数据框简要 可输入来访问mtcars这个系统自带的数据框中的mpg列 mtcars$mpg 或者输入 mtcars[c("mpg","cyl")] 来访问两 ...

随机推荐

  1. 与调试器共舞 - LLDB 的华尔兹

    你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? 1 NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函数调用来简化程序的行为? 1 ...

  2. 漫谈 Clustering (4): Spectral Clustering<转载>

    转自http://blog.pluskid.org/?p=287 如果说 K-means 和 GMM 这些聚类的方法是古代流行的算法的话,那么这次要讲的 Spectral Clustering 就可以 ...

  3. Bootstrap历练实例:按钮组大小

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  4. vue引用文件

    1)css引入在vue页面中<style scoped> @import url("../assets/css/home.css");</style>2)j ...

  5. shell脚本,awk 匹配的做修改后打印,不匹配的打印。

    文件file内容如下a 1a 2b 3b 4 b 5c 6c 7 要求:第一列匹配b时,如果第二列大于3,那么将第二列加上1后打印,其余的原封不动打印.结果如下: a 1a 2b 3b 5 b 6c ...

  6. WebAssembly MDN简单使用

    MDN 就是通过编译器编译完成c后生成的胶水代码 引入js 就能直接调用定义在c或者c++中的函数了 c代码如下: #include <stdio.h> #include <stdl ...

  7. 【dp】bzoj1613: [Usaco2008 Jan]Running贝茜的晨练计划

    还记得这是以前看上去的不可做题…… Description 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1<=N<=10,000)分钟的晨跑.在 ...

  8. docker build no such file or directory

    在我构建新的镜像的时候, 发生 了  no such file or directory 的错误.  这个错误找了半天, 没头绪, 后来灵光一现, 原来是我的文件夹名字写错了 我的目录结构是这样的 [ ...

  9. perl学习之FLOCK函数的调用(讲的非常好)

    一段演示flock系统调用的perl程序http://www.extmail.org/forum/viewthread.php?tid=1066

  10. awk之NF的妙用

       在awk中大家都知道NF的作用,它是一个awk的内建变量,代表是每行的字段数量.常用的几种方式我给大家慢慢到来.最多的就是在读取每个字段内容 for(i=1;i<=NF;i++) 这个运用 ...