R语言中向量和矩阵简单运算

2023-11-01

一、向量运算

向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量。

  1.R语言向量的产生方法

> x <- c(1,2,3)
> x
[1] 1 2 3

 2.向量加减乘除都是对其对应元素进行的,例如下面

> x <- c(1,2,3)
> y <- x*2
> y
[1] 2 4 6

注:向量的整数除法是%/%,取余是%%。

3.向量的内积,有两种方法。

第一种方法:%*%

> x <- c(1,2,3)
> y <- c(4,5,6)
> z <- x%*%y
> z
     [,1]
[1,]   32

第二种方法:crossprod(x,y).

> x <- c(1,2,3)
> y <- c(4,5,6)
> z <- crossprod(x,y)
> z
     [,1]
[1,]   32

4.向量的外积 ,有三种方法。

第一种方法:%o%

> x <- c(1,2,3)
> y <- c(4,5,6)
> x%o%y
     [,1] [,2] [,3]
[1,]    4    5    6
[2,]    8   10   12
[3,]   12   15   18

第二种方法:tcrossprod(x,y)

> x <- c(1,2,3)
> y <- c(4,5,6)
> tcrossprod(x,y)
     [,1] [,2] [,3]
[1,]    4    5    6
[2,]    8   10   12
[3,]   12   15   18

第三种方法:outer(x,y)

> x <- c(1,2,3)
> y <- c(4,5,6)
> outer(x,y)
     [,1] [,2] [,3]
[1,]    4    5    6
[2,]    8   10   12
[3,]   12   15   18

 

二、矩阵的运算

1. 矩阵的产生方式

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

其中第一个3表示的是行数,第二个3表示的列数。 故产生一个3*3的矩阵。这里是将1到9按列排列,如果想按行排列,那么如下代码

> x <- matrix(1:9,3,3,byrow = TRUE)
> x
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

2.矩阵对应元素的运算

> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> x*y
     [,1] [,2] [,3]
[1,]    9   24   21
[2,]   16   25   16
[3,]   21   24    9

3.矩阵的转置

> x <- matrix(1:9,3,3)
> x
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> t(x)
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

4.矩阵乘法

> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> x%*%y
     [,1] [,2] [,3]
[1,]   90   54   18
[2,]  114   69   24
[3,]  138   84   30

5.矩阵 x乘y的转置,x的转置乘以y

> x <- matrix(1:9,3,3)
> y <- matrix(9:1,3,3)
> crossprod(x,y)
     [,1] [,2] [,3]
[1,]   46   28   10
[2,]  118   73   28
[3,]  190  118   46
#这个是x的转置乘以y
> tcrossprod(x,y)
     [,1] [,2] [,3]
[1,]   54   42   30
[2,]   72   57   42
[3,]   90   72   54
#这个是x乘以y的转置

6.求矩阵的行列式、对称矩阵的特征值、特征向量

> x <- matrix(1:9,3,3)
> x
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> det(x)
[1] 0
#这个是求特征值的
> x <- matrix(1:9,3,3)
> x
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> a <- crossprod(x,x)
> a1 <- eigen(a)   #这个是得到对称矩阵特征值、特征向量的主要函数
> a1
eigen() decomposition
$`values`    #这个是特征值
[1] 2.838586e+02 1.141413e+00 6.308738e-15

$vectors     #这个是特征向量
           [,1]       [,2]       [,3]
[1,] -0.2148372  0.8872307  0.4082483
[2,] -0.5205874  0.2496440 -0.8164966
[3,] -0.8263375 -0.3879428  0.4082483


 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R语言中向量和矩阵简单运算 的相关文章

  • 长变量名在 dplyr 中失败

    长度超过 39 个字符的字符串在 dplyr 中失败 返回错误 错误 索引超出范围 我错过了什么还是这是一个错误 40 个字符不起作用 library dplyr names iris 5 lt vvv 5vvv10vvv15vvv20vv
  • grep() 搜索数据框的列名

    有没有更清晰 更简单 更直接 更短的方法来做到这一点 其中 df1 是数据框 names df1 grep Yield names df1 我想返回任何包含单词 yield 的列名称 Thanks grep has a value应该适用于
  • R - 在浏览器中获取帮助而不是内置的 R 帮助程序

    我见过 R help 的两种不同行为 当你输入 density例如 帮助已在您的默认浏览器中打开 帮助在内置 R 帮助程序中打开 R 中的窗口 我目前有第二种行为 但我想在浏览器中打开帮助 我可以轻松地在这两种行为之间切换吗 无需重新安装
  • R - 正则表达式错误(PCRE 版本)

    我正在尝试使用koRpus在 R 中在运行 RHEL6 的 Linux 服务器上进行词形还原 上周 当我安装了 MRO Microsoft R Open 3 2 3 时 下面的代码效果很好 library koRpus lw c danci
  • 使用 ggplot2 修改点子集的形状

    我正在尝试绘制一个沿大量维度变化的大型散点图 这是我的起始情节 p lt ggplot mtcars aes wt mpg shape cyl colour gear size carb geom point 使用mtcars数据集 我只是
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • 在 mac (iMac OSX ) 终端中远程运行脚本(r 脚本)到其他计算机

    我有一个小示例脚本 script p r 如下所示 打算在终端中运行 usr bin Rscript sink output capture txt mn lt mean 1 10 and so on much longer list of
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • 在函数内部调用 clusterApply 时,性能会下降

    我遇到了一个奇怪的问题clusterApply 我已经能够尽可能地隔离它 如下所示 首先 我从全局环境运行以下代码 require parallel cl lt makeCluster rep localhost 20 SOCK xl lt
  • 将列表中的列转换为 R 中的数据框

    我有使用 R 创建的以下列表 set seed 326581 X1 rnorm 10 0 1 Y1 rnorm 10 0 2 data data frame X1 Y1 lst lt replicate 100 df smpl lt dat
  • 如何更新条件公式?

    让我直接进入示例 考虑以下等式 frml lt formula y a b x z 使用这样的公式规范 例如和AER ivreg 我想更新这个公式 使其显示为 frml2 lt y a b c x z w 但是 我不确定如何更新条件标志之前
  • 将 VLMC 拟合到很长的序列

    我正在尝试将 VLMC 拟合到最长序列为 296 个状态的数据集 我这样做如下所示 Load libraries library PST library RCurl library TraMineR Load and transform d
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • 解析,用三点参数替换

    让我们考虑一个典型的deparse substitute R call f1 lt function u x y print deparse substitute x varU vu varX vx varY vy f1 u varU x
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • 为绘图制作 2D 图例 - 双变量分区统计图

    我一直在玩双变量 choropleth 地图 并且一直在如何创建类似于 2d 图例的问题上陷入困境约书亚 史蒂文斯 http www joshuastevens net cartography make a bivariate chorop
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • 使用outer代替expand.grid

    我正在寻找尽可能快的速度并留在基地做该做的事expand grid做 我用过outer为过去类似的目的创建一个向量 像这样的东西 v lt outer letters LETTERS paste0 unlist v lower tri v
  • 非闪亮上下文中的反应式对象绑定

    实际问题 你怎样才能近似反应性环境 行为 http shiny rstudio com tutorial lesson6 建立者shiny http shiny rstudio com函数 或者甚至可能在一个函数中使用这些函数无光泽上下文以

随机推荐

  • MySQL免安装版下载及安装(完整版)

    1 安装包下载 1 进入官网下载 MySQL Download MySQL Community Server Archived Versions 2 压缩包解压到你要安装的位置 2 MySQL配置 1 以管理员身份打开命令 2 跳转到MyS
  • 圆形图片

    public class RoundImageView extends ImageView public RoundImageView Context context super context TODO Auto generated co
  • 期货,实例讲述

    说到 期货 有人马上就会想到一大堆的粮食或者金属品的满天飞 其实不然 如果要每个人都抱一大堆的粮食回家的话我想经纪公司存在也没有它实质的意义了 其实对于大多数的投机者来说 期货 就和 股票 一样 都是一种低买高卖的挣钱工具 它并不需要你把一
  • 分布式复习1~3章

    参考 学校ppt 整体 爹 https zhuanlan zhihu com p 341814546 时间和时钟 https blog csdn net fragile98 article details 113695334 分布式系统的时
  • 利用ESP8266模块实现远程用手机控制开关

    利用ESP8266模块实现远程用手机控制开关 文章目录 前言 一 ESP8266是什么 二 使用步骤 1 密钥与核心库 2 连接Wi Fi 3 手机端控制函数 总结 插入链接与图片 列表 前言 随着万物联网的时代到来 通过互联网来控制已经越
  • AIGC 的概念与内涵

    导读 目前 对AIGC这一概念的界定 尚无统一规范的定义 国内产学研各界对于AIGC的理解是 继专业生成内容 ProfessionalGeneratedContent PGC 和用户生成内容 UserGeneratedContent UGC
  • 多线程-线程通信(wait-notify,await-single,park-unpark)

    在多线程场景中 如有些线程需要依赖另外线程的结果而继续执行 如多个线程处理请求 有的处理的快有点慢 快的需要等待慢的线程结果一起提交执行结果 都会涉及到线程间的通信 就是A线程告知B线程处理的结果是怎么样 B线程再执行对应逻辑 通信比较经典
  • Laravel从入门到实践

    Laravel从入门到实践 版本 Laravel版本 8 75 0 安装与配置 使用Docker 安装项目 curl s https laravel build betterlife bash 启动项目 cd betterlife vend
  • 笔记:RTSP在线视频流资源地址

    1 在线视频流地址 rtsp wowzaec2demo streamlock net vod mp4 BigBuckBunny 115k mov 2 播放软件 vlc 下载地址 Downloads VideoLAN 使用如下 打开媒体 打开
  • 股票集合竞价规则详解,什么是集合竞价?集合竞价技巧分析

    股票集合竞价规则是每一个新入股市的朋友都应该首先掌握的一个知识要点 然而很多新入市的朋友对于股票集合竞价规则了解的是很少的 今天为了帮助更多的朋友掌握这个规则 笔者作为金融市场的铁杆粉丝 从三年前开始 就对金融市场的理论和实践方面的认识逐渐
  • 【空气检测仪专题】9.画PCB图

    空气检测仪专题 9 画PCB图 移植了EmWin并写了demo程序 效果如下 很久没有画PCB图了 慢慢画呗
  • 北大网站服务器关闭,北京大学网络服务

    nbsp 1 如何在Windows2000环境下配置静态IP地址 第一步 选择 控制面板 选择 网络和拨号连接 第二步 鼠标右键选择 本地连接 或者相应的网卡名称 选择 属性 第三步 选择 TCP IP协议 第四步 配置相应的参数 IP地址
  • 查看SELinux状态&关闭SELinux

    1 查看SELinux状态 1 1 getenforce getenforce 命令是单词get 获取 和enforce 执行 连写 可查看selinux状态 与setenforce命令相反 setenforce 命令则是单词set 设置
  • Qt获取当前时间(超详细)

    Qt获取当前时间 超详细 转载自别的网站 时间日期是经常遇到的数据类型 Qt 中时间日期类型的类如下 QTime 时间数据类型 仅表示时间 如15 23 13 QDate 日期数据类型 仅表示日期 如2017 4 5 QDateTime 日
  • unity timeline 用脚本添加事件运用

    ExposedReference
  • 变长模板:模板参数包和函数参数包

    模板参数包 我们先看看变长模板的语法 以tuple为例 template
  • Qt 菜单背景设置颜色 菜单设置颜色

    菜单红色 菜单栏紫色 this gt setStyleSheet QMenu item selected background color ff0000 QMenuBar background color ee00ff 紫色 看效果 菜单背
  • 什么是vue生命周期?

    vue生命周期是指vue实例对象从创建之初到销毁的过程 vue所有功能的实现都是围绕其生命周期进行的 在生命周期的不同阶段调用对应的钩子函数实现组件数据管理和DOM渲染两大重要功能 vue生命周期的这八个阶段 1 创建前 beforeCre
  • ut本地系统服务器,mysql本地服务器地址

    mysql本地服务器地址 内容精选 换一换 云数据库RDS服务提供使用内网 公网和数据管理服务 Data Admin Service 简称DAS 的连接方式 VPC 虚拟私有云 Virtual Private Cloud 简称VPC ECS
  • R语言中向量和矩阵简单运算

    一 向量运算 向量是有相同基本类型的元素序列 一维数组 定义向量的最常用办法是使用函数c 它把若干个数值或字符串组合为一个向量 1 R语言向量的产生方法 gt x lt c 1 2 3 gt x 1 1 2 3 2 向量加减乘除都是对其对应