R语言入门视频笔记--3-1--矩阵与数组
生成一个新矩阵,多用一些参数吧这次:
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--矩阵与数组的更多相关文章
- R语言入门视频笔记--9--随机与数据描述分析
古典概型的样本总量是一定的,且每种可能的可能性是相同的, 1.中位数:median(x) 2.百分位数:quantile(x)或者quantile(x,probe=seq(0,1,0.2)) #后面这 ...
- R语言入门视频笔记--10--数据挖掘
这里来挖掘超市购物车数据. 名词: 1.挖掘数据集:购物篮数据 2.挖掘目标:关联规则 3.关联规则:牛奶=>鸡蛋[支持度=2%,置信度=60%] 4.指出度:分析中的全部事务的2%同时购买了牛 ...
- R语言入门视频笔记--5--自定义函数
自定义函数 你可以输出一段代码,创建一个你自己定义的函数 蛋是如果你两个自定义函数的名字重复的话,后面的会把前面的替换掉 举个栗子: hanshu1 <- function(x) sqrt(v ...
- R语言入门视频笔记--4--R的数据输入
输入 R的数据输入可以大体三种: 1.键盘输出 2.从文本文件导入 3.从Excel中导入数据 一.从键盘输入 首先创建一个数据框,玩玩嘛,瞎建一个 mydata <- data.frame(a ...
- R语言入门视频笔记--8--数据框
一.数据框 使用data.frame函数生成数据框 x <- c(20122014101:20122014128) y <- rnorm(28,85,18) #生成28个平均数为85,方差 ...
- R语言入门视频笔记--6--R函数之cat、format、switch函数
一.cat 猫 怎么就变成一个输出函数了呢? cat 一个输出函数,功能和print有相同之处 我们一起比较看看 1.cat(“hellow world”)或cat('hellow world') ...
- R语言入门视频笔记--3--列表list
list <- (stud.id = 1234,stud.name="Tom",stud,marks=c(18,3,14,25,19)) #生成一个列表,里面有学生id,学生 ...
- R语言入门视频笔记--2--一些简单的命令
一.对象 1.列举当前内存中的对象 ls() 2.删除不需要的对象 rm(某对象名称) 3.查看向量长度 length(某向量名称) 4.查看向量类型 mode(某向量名称) 二.函数 1.seq函数 ...
- R语言入门视频笔记--1
一.数据框简要 可输入来访问mtcars这个系统自带的数据框中的mpg列 mtcars$mpg 或者输入 mtcars[c("mpg","cyl")] 来访问两 ...
随机推荐
- 适用于iOS7 UI的外描边图标素材下载
我们知道ios7的界面设计是非常简约的,图标也不例外,iOS7的icon大部使用了扁平化的外描边风格设计,使得整体看起来十分简约.耐看,这次分享达人为大家收集将近600个漂亮的外描边图标下载,这些图标 ...
- 【原创】最有效解决IE8 position兼容性问题
看了网上的的帖子真是水的一塌糊涂,完全没有解决我和广大网友们的关于ie8下position兼容性问题. 网上有的技术我就不说了 ,大家自行搜索,我想说的重点是 ie8不支持html5的新标签.这是重点 ...
- Burpsuite1.7.03网站渗透神器最新破解版
众所周知,Burp Suite是响当当的web应用程序渗透测试集成平台.从应用程序攻击表面的最初映射和分析, 到寻找和利用安全漏洞等过程,所有工具为支持整体测试程序而无缝地在一起工作. 平台中所有工具 ...
- Python IDE推荐
八个最佳Python IDE 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Python是一种功能强大.语言简洁的编程语言.本文向大家推荐8个适合pyt ...
- ios 之CGRectMake
首先要弄懂几个基本的概念. 一)三个结构体:CGPoint.CGSize.CGRect 1. CGPoint [plain] view plaincopy /* Points. */ struc ...
- 【Java_多线程并发编程】基础篇——线程状态扭转函数
1. wait() sleep() yield() join()用法与区别 本文提到的当前线程是指:当前时刻,获得CPU资源正在执行的线程. 1.1 wait()方法 wait()方法定义在Objec ...
- Redis数据库(二)
1. Redis数据库持久化 redis提供了两种数据备份方式,一种是RDB,另外一种是AOF,以下将详细介绍这两种备份策略. 面试: 1.1 配置文件详解备份方式 [root@localhost ...
- web开发框架Flask学习一
flask框架 用Python做Web开发的三大框架特点 Django 主要特点是大而全,集成了很多的组件,例如:Admin Form Model等,不管你用不用的到,他都会为 你提供,通常用于大型W ...
- iMX6QD How to Add 24-bit LVDS Support in Android
iMX6QD How to Add 24-bit LVDS Support in Android 版本 4 由 Ying Liu 于 2012-10-14 下午11:52创建,最后由 Jodi Pau ...
- JavaScript正则表达式-定义
通过RegExp()构造函数创建RegExp对象来定义正则表达式. var reg_pattern = new RegExt("a\d"); 通过字面语法直接定义正则表达式. va ...