快速将大型 2d 矩阵融合为 3 列 data.table

2024-02-09

我有一个大矩阵num [1:62410, 1:48010]

我想要一个长格式的 data.table

e.g.

   Var1 Var2     value
1:    1    1 -4227.786
2:    2    1 -4211.908
3:    3    1 -4197.034
4:    4    1 -4183.645
5:    5    1 -4171.692
6:    6    1 -4161.634

最小的例子

m = matrix(1:5, nrow = 1000, ncol = 1000)
x = data.table(reshape2::melt(m))

理想情况下,我希望同时具有列名称 x、y 和值。

以前我一直在使用data.table(melt(mymatrix))。 但从警告来看reshape2::melt已弃用,这在速度方面可能不是最佳的,解决此问题的最佳“data.table”方法是什么?

以下内容没有回答我的问题:快速融化的 data.table 操作 https://stackoverflow.com/questions/13968579/fast-melted-data-table-operations 重塑 data.table 的正确/最快方法 https://stackoverflow.com/questions/6902087/proper-fastest-way-to-reshape-a-data-table

其他答案参考已弃用的reshape2 package


这是一个例子:

# example matrix
m = matrix(1:12, nrow = 4)

# load data table
library(data.table)

我们可以直接提取数据、行和列信息,它应该相当快:

dt = data.table(
  row = rep(seq_len(nrow(m)), ncol(m)), 
  col = rep(seq_len(ncol(m)), each = nrow(m)), 
  value = c(m)
)

结果是:

    row col value
 1:   1   1     1
 2:   2   1     2
 3:   3   1     3
 4:   4   1     4
 5:   1   2     5
 6:   2   2     6
 7:   3   2     7
 8:   4   2     8
 9:   1   3     9
10:   2   3    10
11:   3   3    11
12:   4   3    12
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速将大型 2d 矩阵融合为 3 列 data.table 的相关文章

随机推荐

  • 如何将 p5.js 画布放入 html div 中

    我正在尝试将 p5 js 添加到网页中某一部分的背景 我是 javascript 新手 不知道如何将这两个部分绑定在一起 您需要在设置中添加代码 确保 html 中的脚本标记中也包含该函数 请注意 您不要在 parent 中添加 var m
  • 使用 Lua 时 C++ 中的堆栈展开

    我最近偶然发现了这个 C Lua 错误 int function for lua lua State L std string s Trouble coming return luaL error L something went wron
  • 用于对所有行进行分页的 Cassandra CQL 方法

    我想以编程方式检查大型 cassandra 表中的所有行 并希望使用 CQL 我知道我可以使用 thrift 来做到这一点 使用 multiget 一次获取 10 000 左右 行 并将最后检索到的密钥传递给下一个 multiget 调用
  • 简单的拼写检查算法

    我的任务是为作业创建一个简单的拼写检查器 但几乎没有提供任何指导 所以想知道是否有人可以帮助我 我并不是在找人为我做作业 但任何关于算法的指导或帮助都会很棒 如果我所问的内容不在该网站的指导范围内 那么我很抱歉 我会去其他地方寻找 该项目加
  • Web项目中的Java文件路径

    我需要从类访问我的 Web 项目中的资源文件 问题是我的开发环境的路径和项目部署时的路径不一样 例如 如果我想在开发时访问一些 css 文件 我可以这样做 File file new File src main webapp resourc
  • 生成最小可执行文件的编程语言? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 非常简单的mysql查询不使用索引

    我的 mySQL 表的排序不使用索引 我不知道为什么 我有 CREATE TABLE IF NOT EXISTS test a int 11 NOT NULL b int 11 NOT NULL KEY kk a ENGINE MyISAM
  • C中获取字符串的指针算术

    我想获取字符数组的元素 但根本没有成功 问题是我只获取第一个和最后一个元素 仅此而已 我的代码是 void getcharacters char cad int l int i l strlen cad for i cad 0 i lt c
  • 使用 boost::asio::use_future 增强 asio:async_read()

    打电话时asio async read 使用 future 有没有办法获取当 a 时传输的字节数boost asio error eof出现异常 似乎在很多情况下 即使对等方断开连接 人们也希望传输数据 例如 namespace ba bo
  • 具有自定义背景图像的 Google 地图

    我希望找到一种方法来创建带有自定义背景图像的谷歌地图实例 我看过一些示例 下面链接 但没有找到任何有关如何执行此操作的文档 我希望有人能帮助我解决这个问题 Thanks 简单的例子 http www obsidianportal com c
  • 恢复/重置默认 Xcode 字体配色方案?

    所以我尝试单击 T 却不小心单击了 XCode 字体首选项中的 颜色 框 我已经处于 默认 状态 现在我正在尝试恢复它 我发现这是不可能的 我被其他程序中存在的 重置默认值 按钮宠坏了 除了重装还有什么办法吗 是的 我偏爱白色背景 随着时间
  • 什么时候适合使用C作为面向对象语言?

    关于如何使用 C 来模拟面向对象的概念 有很多优秀的答案 仅举几例 C 具有抽象数据类型的双链表 https stackoverflow com questions 3274472 c double linked list with abs
  • 设置animationDidStopSelector:在UIView的动画委托上

    我认为在过去一年半的 iPhone 开发经验中我一直在做这个错误 我需要一些知识渊博的澄清 您可能知道也可能不知道 使用 UIView 属性可以很容易地设置动画beginAnimations forContext 方法 并用一个包装它com
  • 如何使用正则表达式来匹配不包含多个特定单词之一的字符串?

    如何使用正则表达式来避免匹配包含多个特定单词之一的字符串 例如 字符串不应包含以下单词test nor sample sample test 我的正则表达式在某些情况下会失败 1 this is a test case 2 this is
  • 使用定义的模式生成多个动态 ID 的函数

    我正在尝试创建一个函数来生成具有定义模式的多个动态 ID 我该怎么做 跟进 Vue js 如何使用定义的模式生成多个动态 ID https stackoverflow com q 49776146 8770366 Details 我正在创建
  • 如何将 Chromium 嵌入式框架 (CEF) 与 java 集成

    我想制作一个桌面应用程序来浏览网站 我不想制作浏览器 而是制作浏览器嵌入应用程序 我尝试过JavaFx但我发现了一些问题 例如缺少对插件的支持 例如 flash pdf 查看器等 经过大量搜索后 我发现了 Chromium Embedded
  • XML:如何将一个 xml 文件的内容加载到另一个文件中

    我只是希望能够从另一个 xml 文件动态写入 xml 文件的内容 A XML包含
  • Angular 6 中 ng2-file-upload 的进度条

    我想为我的文件上传创建一个进度条 我使用的上传是 https www npmjs com package ng2 file upload https www npmjs com package ng2 file upload 应用程序组件
  • 导航抽屉项目未注册点击事件

    我正在努力让导航抽屉项目注册并启动并意图进行新活动 抽屉打开正常并正确显示 但当我单击列表中的项目时没有任何反应 这是我的代码 取自谷歌教程 mTitle mDrawerTitle getTitle mTitles getResources
  • 快速将大型 2d 矩阵融合为 3 列 data.table

    我有一个大矩阵num 1 62410 1 48010 我想要一个长格式的 data table e g Var1 Var2 value 1 1 1 4227 786 2 2 1 4211 908 3 3 1 4197 034 4 4 1 4