在数组第三维上应用函数

2024-03-16

我有一个大数组,这是一个可复制的示例:

cube <- array(c(1:10,5:15,-5:+5,1:18), c(4, 4, 3)) 
cube
, , 1

     [,1] [,2] [,3] [,4]
[1,]    1    5    9    7
[2,]    2    6   10    8
[3,]    3    7    5    9
[4,]    4    8    6   10

, , 2

     [,1] [,2] [,3] [,4]
[1,]   11   15   -2    2
[2,]   12   -5   -1    3
[3,]   13   -4    0    4
[4,]   14   -3    1    5

, , 3

     [,1] [,2] [,3] [,4]
[1,]    1    5    9   13
[2,]    2    6   10   14
[3,]    3    7   11   15
[4,]    4    8   12   16

我想将此函数应用于数组的每个“楼层”(第三维):

m1 <- cube[,,1]
m2 <- cube[,,2]
m3 <- cube[,,3]
library(data.table)
m1[] <- frank(-m1, ties.method = "dense")
m2[] <- frank(-m2, ties.method = "dense")
m3[] <- frank(-m3, ties.method = "dense")   

然后,由于可复制的例子非常小。我可以通过以下方式轻松完成组合矩阵的最终工作:

z <- array( c( m1 , m2, m3 ) , dim = c( 4 , 4 , 3 ) )
z
, , 1

     [,1] [,2] [,3] [,4]
[1,]   10    6    2    4
[2,]    9    5    1    3
[3,]    8    4    6    2
[4,]    7    3    5    1

, , 2

     [,1] [,2] [,3] [,4]
[1,]    5    1   13    9
[2,]    4   16   12    8
[3,]    3   15   11    7
[4,]    2   14   10    6

, , 3

     [,1] [,2] [,3] [,4]
[1,]   16   12    8    4
[2,]   15   11    7    3
[3,]   14   10    6    2
[4,]   13    9    5    1

我需要一种快速的方法来在我的大型数组中执行此操作。有什么帮助吗?谢谢。


功能apply是为此而设计的。第二个参数MARGIN指定应用函数的维度。

res <- apply(-cube, 3, frank, ties.method = "dense")
## reshape:
array(res, dim=dim(cube))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在数组第三维上应用函数 的相关文章

随机推荐

  • 将整数转换为二进制并将其存储在指定大小的整数数组中:c++

    我想将整数转换为二进制字符串 然后将整数字符串的每一位存储到给定大小的整数数组的元素中 我确信输入整数的二进制表达式不会超过指定数组的大小 如何在 C 中做到这一点 伪代码 int value assuming a 32 bit int i
  • NSString 的精确浮点值

    NSString str 37 3336 float f str floatValue f 为 37 3335991 除了我自己四舍五入之外 还有没有办法从 NSString 获取精确的浮点值 Use NSDecimalNumber dec
  • 跨子域 iframe 和 JavaScript

    我正在开发一个 CMS 网站 其域名是 http www acmssite com 他们有一个存储表单系统的子域 http www forms acmssite com 我在第一个上有一个 iframe 它查看后者中的表单 我需要运行脚本来
  • currval 尚未定义此会话,如何获取多会话序列?

    我的目标是在表中插入新行时自动插入主键字段 如何在 PostgreSQL 中获取从一个会话到另一个会话的序列 doubleemploi hanbei home yves psql d test Mot de passe psql 8 4 1
  • Jenkins 针对特定分支的 git commit 触发器也会为其他分支构建作业

    我们有一个内部企业 Github 存储库 并且我有多个功能分支 我面临着在特定分支上触发构建的问题 我已经为每个功能分支配置了作业 一个功能分支有一份詹金斯工作 我第一次提交代码时 它还会触发其他分支的作业构建 重现问题的步骤 1 我们有一
  • dBWriteTable 无法将 NULL 写入 SQL Server 表

    ISSUE 无法将 NA 值从 data frame 插入到数据库表 STEPS 将表从 SQL Server 读入 Rdata frame 表是十进制的 有一些NULL data frame 是数字 有一些NA dBWriteTable抛
  • 具有旧 Facebook 应用程序版本的 Facebook SDK 3.0 重定向到浏览器并卡住

    我的应用程序中有一个 FB AuthButton 正在连接到 FB 进程我的设备正在运行旧版本的 FB 应用程序 版本 1 8 3 1 8 4 当我单击登录按钮时 该过程不会启动本机应用程序 而是调用浏览器来完成该过程 在日志中 我看到这些
  • Javascript 可以检查文件的内容更改吗?

    Example I have var r new FileReader r onload function e drawGraph r result r readAsText f 从用户输入的文件 f 绘制图形 有没有办法检查文件 f 是否
  • 使用 Java 布局管理器的目的是什么?

    似乎每当我尝试创建一个程序时 我总是会使用setLayout null 在 Java 中使用命令 因为我喜欢绝对定位我要放入 Swing 组件上的任何内容 从我读到的内容来看 每个人都在说使用布局管理器来简化编码过程 但它是如何简化的呢 平
  • 从Android手机内存中读取文本文件

    我只想在手机内存中创建一个文本文件 并且必须读取其内容才能显示 现在我创建了一个文本文件 但它不存在于路径 data data package name file name txt 中并且它没有在模拟器上显示内容 我的代码是 public
  • 完整日历 - 拖放 - 自定义

    我正在使用 React 调度程序 FullCalendar 我喜欢保留拖放功能来将事件从一种资源更改为另一种资源 但是有没有办法禁止水平拖动来改变时间呢 同样现在 拖放的工作方式就像事件将从一个资源粘到另一个资源一样 并且没有平滑的拖动操作
  • 如何使用 jQuery UI 调整 datatables.js 列的大小

    我在 stackoverflow 中找到了调整表列大小的解决方案 jQuery UI 使用表格和 colspan 调整大小 https stackoverflow com questions 18812432 jquery ui resiz
  • 图实现C++

    我想知道如何用 C 快速编写图的实现 我需要数据结构易于操作和使用图算法 例如 BFS DFS Kruskal Dijkstra 我需要这个实现来参加算法奥林匹克竞赛 因此编写数据结构越容易越好 你能建议这样的DS 主要结构或类以及其中的内
  • 找不到满足 torch>=1.0.0 要求的版本?

    找不到满足要求的版本 torch gt 1 0 0 找不到 torch gt 1 0 0 的匹配发行版 来自 stanfordnlp 如果您的 Python 版本太新 也可能会发生这种情况 目前使用 Pytorch不支持3 7 9以上版本
  • InvalidDataAccessApiUsageException:执行更新/删除查询 Spring XML 到 Java 配置

    我正在尝试将 spring xml 配置转换为 java 配置 通过 XML 配置可以完美地实现这一点 但是 如果我使用 java 配置初始值设定项 它会引发以下异常 当它尝试运行 JQL 时会发生这种情况 但应用程序正常启动 所有 JPA
  • CocoaPods 错误:RPC 失败; curl 18 传输已关闭,剩余未完成的读取数据

    当我尝试使用 CocoaPods 导入 Realm 时 如下所示 pod install verbose no repo update 然后发生错误 error RPC failed curl 18 transfer closed with
  • 引用c++中的引用

    我正在研究 C 中的参考概念 并且我对 C 完整参考中的这个陈述有点困惑 您不能引用其他引用 那么在这种情况下发生了什么 int var 10 int ref var int r ref ref r ref cout lt lt var l
  • 返回两个圆之间的 x,y 交点的 JavaScript 函数?

    我得到了两个圆的 x y 中心位置及其半径 但我需要使用 JavaScript 找到它们的交点 用红色标记 我认为就数学而言最好的解释已经找到here http paulbourke net geometry circlesphere 两个
  • LEFT OUTER JOIN SUM 双倍问题

    表 购物 shop id shop name shop time 1 Brian 40 2 Brian 31 3 Tom 20 4 Brian 30 表 香蕉 banana id banana amount banana person 1
  • 在数组第三维上应用函数

    我有一个大数组 这是一个可复制的示例 cube lt array c 1 10 5 15 5 5 1 18 c 4 4 3 cube 1 1 2 3 4 1 1 5 9 7 2 2 6 10 8 3 3 7 5 9 4 4 8 6 10 2