当 ff 矩阵内存分配不够时,在 R 中使用大数据集的相关矩阵

2023-12-14

我有一个简单的分析要做。我只需要计算列(或行,如果转置)的相关性。够简单吗?我整整一周都无法获得结果,我已经浏览了这里的大部分解决方案。

我的笔记本电脑有 4GB 内存。我确实可以访问具有 32 个节点的服务器。我的数据无法在此处加载,因为它很大(411k 列和 100 行)。如果您需要任何其他信息或可能是部分数据,我可以尝试将其放在这里,但问题可以很容易地解释,而无需真正查看数据。我只需要获得大小为 411k X 411k 的相关矩阵,这意味着我需要计算数据行之间的相关性。

我尝试编码的概念:(所有这些概念都以某种方式给我带来内存问题或永远运行)

  1. 最简单的方法,一行对所有,使用append.T写出结果。 (永远运行)
  2. biCorPar.r 由 bobthecat (https://gist.github.com/bobthecat/5024079),将数据分成块并使用 ff 矩阵。 (无法在我的服务器中使用 ff() 分配内存来分配 corMAT 矩阵)
  3. 将数据分成集合(每 10000 个连续行将是一个集合),并将每个集合与另一个集合进行关联(与 bigcorPar 相同的逻辑),但我无法找到一种方法将它们最终存储在一起以生成最终的 411kX411k 矩阵。
  4. 我现在正在尝试此操作,bigcorPar.r 针对 411k 的 10000 行(因此 10000 行被分为块)并将结果保存在单独的 csv 文件中。
  5. 我还尝试在我的服务器的一个节点中运行每 1000 与 411k,今天是我的第三天,我仍然在第 71 行。

我不是 R 专业人士,所以我只能尝试这么多。要么我的代码永远运行,要么我没有足够的内存来存储结果。有没有更有效的方法来解决这个问题?

感谢您的所有评论和帮助。


我自己在基因研究的背景下熟悉这个问题。

如果您只对显着相关性感兴趣,您可能会发现我的包 MatrixEQTL 很有用(可在 CRAN 上找到,更多信息请参见此处:http://www.bios.unc.edu/research/genomic_software/Matrix_eQTL/ ).

如果您想保留所有相关性,我想首先警告您,以二进制格式(与文本相比更经济)将需要 411,000 x 411,000 x 8 字节 = 1.3 TB。如果这就是您想要的,并且您对所需的存储感到满意,我可以提供用于此类计算和存储的代码。

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

当 ff 矩阵内存分配不够时,在 R 中使用大数据集的相关矩阵 的相关文章

  • 从 leafletProxy() 返回渲染的传单地图

    是否可以在渲染后在 Shiny 中检索传单地图 下面是一个代码示例 展示了如何生成地图leaflet 与返回的不同leafletProxy 即使它们在渲染时看起来完全相同 是否有一个功能可能不同于leafletProxy 获取实际的 htm
  • 如何在有条件的情况下获得R中多列的中位数(根据另一列)

    我是 R 初学者 我想知道如何完成以下任务 我想用数据集所有列的中位数替换数据集的缺失值 但是 对于每一列 我想要某个类别的中位数 取决于另一列 我的数据集如下 structure list Country structure 1 5 La
  • 如何编写固定宽度的文件?

    我应该编写一个基于固定宽度列的特定格式的 txt 文件 例如 第 1 8 列中的第一个变量 第 9 15 列中的第二个变量 原始数据有不同的长度 它们必须放在指定列的右侧 例如 值 15 96 和 12 489 必须写入第一行和第二行的第1
  • 为特定 ID 重新编码列中的观察结果

    我有一个数据集 称为 调查 其中有行是个人 ID 列中有许多问题 我需要将 1 列中的值重新编码为 NA 并将观察结果移至另一列 例如 ID Fruit Vegetable aaa NA grape bbb NA tomato ccc ap
  • xtable 中的 Cox 回归输出 - 选择行/列并添加置信区间

    我不想将 cox 回归的输出导出到一个表中 然后将其放入我的文章中 我想最好的方法是使用 xtable library survival data pbc fit pbc lt coxph Surv time status 2 age ed
  • 是否可以创建根据输入对象名称自行命名的列表?

    能够创建 R 列表对象而无需指定每个元素的名称对我来说非常有帮助 例如 a1 lt 1 a2 lt 20 a3 lt 1 20 b lt list a1 a2 a3 inherit name TRUE gt b a1 1 1 a2 1 20
  • 错误:美学必须是长度一,或者在省略 NA 时与 dataProblems:personCategoryz 的长度相同

    我正在尝试使用泰坦尼克号数据集创建一个图表 该数据集查看女性 儿童和男性及其生存率 我创建了新的类别来读取数据 但当我尝试超越该点时 不断出现错误消息 当我运行一个图表来显示这一点时 它显示得很好 只是它有一个单独的 NA 数据类别 所以我
  • “x[] <- as.integer(x)”是什么意思

    当我阅读 R 手册时 我遇到了如下代码行 从 R 手册中的 colSums 复制 x lt cbind x1 3 x2 c 4 1 2 5 dimnames x 1 lt letters 1 8 x lt as integer x 有人能告
  • 时间序列,将月度数据改为季度

    现在我有一些每月数据 例如 1 1 90 620 2 1 90 591 3 1 90 574 4 1 90 542 5 1 90 534 6 1 90 545 etc 如果我使用 ts 函数 很容易将数据转换为时间序列结构 例如 Jan F
  • R - 加速近似日期匹配。 idata.frame?

    我正在努力有效地执行两个数据帧之间的 关闭 日期匹配 这个问题探索了一个解决方案 使用idata frame来自plyr包 但我也对其他建议的解决方案感到非常满意 这是两个数据框的非常简单的版本 sampleticker lt data f
  • 为什么我的 3D 绘图没有显示在 R Studio 绘图查看器中?

    我通常在 RStudio 版本 1 0 44 中查看绘图时没有问题 但是当我尝试查看使用 rgl 包创建的 3D 绘图时 我的 RStudio 绘图查看器中什么也没有出现 我能够毫无问题地绘制图 汽车 散点图 这是我正在使用的代码 inst
  • r 闪亮下载过滤数据表(DT)

    我正在尝试做一个shiny应用程序下载过滤后的Datatable 过滤与search 通过删除行进行过滤delete button 下载部分按预期工作 问题 当我第一次使用数据表中的搜索区域进行过滤时 如果我使用按钮删除一行 它会重置第一个
  • ggplot:如何检索轴标签的值?

    如何提取下面的 ggplot 中用于标记 y 轴和 x 轴的数字 分别为20 30 40 and 10 15 20 25 30 35 Plot From r 统计公司 http r statistics co Top50 Ggplot2 V
  • data.table:j中的匿名函数

    我试图让匿名函数返回多列j的论证data table 这是一个例子 sample data tmpdt lt data table a c rep a 5 rep b 5 b c rep f 3 rep r 7 c 1 10 d 21 30
  • 如何解决内存分段并强制FastMM释放内存给OS?

    注意 32 位应用程序不计划迁移到 64 位 我正在使用一个非常消耗内存的应用程序 并且几乎优化了与内存分配 取消分配相关的所有相关路径 应用程序本身没有内存泄漏 没有句柄泄漏 没有任何其他类型的泄漏 据我所知并经过测试 我无法触及的第 3
  • R: pi[[j]] 中的错误:下标越界——数据帧列表上的 rbind

    我正在尝试重新绑定一个大的数据帧列表 outputDfList 它是通过将一个复杂的函数应用于一个大表而生成的 您可以通过以下方式重新创建outputDfList df1 data frame randomseq chr15q22 1 tr
  • R grep:有 AND 运算符吗?

    假设我有以下数据框 User Id Tags 34234 imageUploaded people jpg more comma separated stuff 34234 imageUploaded 12345 people jpg 我如
  • 读取r中不同目录中的多个文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想从不同的目录读取多个 csv 文件 然后将其放入单个数据框中 我有两种目录可供阅读 A LogIIS 文件夹01 文件 csv 在
  • R数据表:将行值与组值进行比较,有条件

    这是问题的延伸 R数据表 将行值与组值进行比较 https stackoverflow com questions 33285050 r data table compare row value to group values 我现在有了
  • 如何使用字符对象使用 dplyr 重命名列[重复]

    这个问题在这里已经有答案了 我想通过使用变量以动态方式使用 dplyr 重命名列 但是 它只是为列命名变量的名称 而不是其内容 有任何想法吗 colnames y 1 time channel 1 channel 2 channel 3 c

随机推荐

  • React 动态设置状态属性及其值[重复]

    这个问题在这里已经有答案了 我有以下组件 import React Component from react import Action from action jsx import SingleGridEl from singleGrid
  • RecyclerView 在使用 FirebaseRecyclerAdapter 首次启动时不会加载数据

    我在用着FirebaseRecyclerAdapter填充一个RecyclerView in a Fragment 这是我的代码 mDatabase FirebaseDatabase getInstance getReference myA
  • iText 在 sandbox.stamper.SuperImpose.java 中设置创建日期和修改日期

    我正在尝试在中设置创建日期和修改日期将一个 PDF 的内容叠加到另一个 PDF 中例如 sandbox stamper SuperImpose java 原则 我认为 很明确 use getInfo 然后做 info put PdfName
  • Facebook Like 按钮有时出现有时不出现

    我的网站上的类似按钮有奇怪的问题 当我进入页面时它会正确显示 刷新后它不会出现并且我有 javascript 错误 FB provide is not a function Break on this error FB provide Ar
  • 并排对齐多个表格

    以下代码生成 2 个相互叠加的表 我将如何设置它以使它们并排对齐 例如连续3个 title sample output pdf document r global options R options knitr opts chunk set
  • 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围

    我有以下从 C Windows 服务运行的内联 SQL UPDATE table name SET status cd 2 sdate CAST 03 28 2011 18 03 40 AS DATETIME bat id 33acff9b
  • JPA实体:从Oracle DATE列获取小时、分钟和秒

    我无法从 Oracle 数据库获取完整的日期信息 dd mm yyyy hh mm ss 在数据库级别 在我想要接收的列中设置测试值 update my table set my date column to date 2011 06 15
  • 异步套接字

    如何与多个客户端连接 与多个客户端连接后 我如何从每个客户端接收单独的数据 据我所知 我需要使用名为 Asyncore 的东西 我该如何实施 客户类别 import socket class Client def init self sel
  • Python / Kivy 应用程序仅运行一次

    我正在使用 Anaconda 平台的 Spyder IDE 运行一个非常简单的 python 3 5 脚本 from kivy app import App from kivy uix label import Label from kiv
  • 如何在 Idris 中表达范围有效性?

    我正在尝试在 Idris 中构建一个简单的调查表单 目前正在努力验证用户输入 该输入以字符串形式出现 所提出问题的类型 目前我有以下几种类型 data Question Type where QCM numOptions Nat gt qu
  • HSM解密+加密链接

    我的应用程序充当交换机 在两方之间传输非常敏感的消息 我试图弄清楚如何在不 查看 他们试图发送的消息的情况下做到这一点 我有一个 HSM 并且我已经为发送者生成了一个密钥对 他们将使用我提供给他们的公钥来加密消息 而我可以使用 HSM 中的
  • 目标C中的^是什么意思? [复制]

    这个问题在这里已经有答案了 Objective C 中的 字符是什么意思 就像下面的代码一样 TWTweetComposeViewControllerCompletionHandler completionHandler TWTweetCo
  • 将制表符分隔的 .txt 解析为 Pandas DataFrame

    我有一个制表符分隔的 txt 文件 我正在尝试将其导入到与文本文件格式相同的 Python 数据框中 如下所示 ham TAB一直走到裕廊点 太疯狂了 只在布吉斯大世界有自助餐 电影那里有更多的东西 spam TAB免费参加 2 场每周比赛
  • 自定义金额计算

    我有下表 Date Value promo item 01 01 2011 626 0 1230 01 02 2011 231 1 1230 01 03 2011 572 1 1230 01 04 2011 775 1 1230 01 05
  • 我可以从 JavaScript 访问无效/自定义 CSS 属性的值吗?

    假设我有以下 CSS div my foo 42 我以后可以在 JavaScript 中以某种方式知道 my fooCSS 属性是针对给定的div 我不认为你可以访问无效的属性名称 至少它在 Chrome 或 Firefox 中对我来说不起
  • tidyr::pivot_longer 到多列

    我需要将数据帧转换为更长的形式 例如 我的数据框将是这样的 df lt data frame group c group1 group2 x1 c 3 4 x2 c 5 6 y1 c 7 8 y2 c 9 10 我需要将其转换为 df2 l
  • 在两个方向上的两个分支之间合并 - 有什么好的理由或完全禁止?

    我的同事最近要求我帮助他使用预提交钩子来阻止推送到中央存储库 这个很有名https hg python org hooks file tip checkheads py 算法checkheads py将头聚集在分支中 忽略来自另一个分支的更
  • 添加项目时的列表视图动画无法正常工作

    我正在尝试修改this例子 code 这样当一个项目被添加到listview时 listview在添加新项目时同时滚动 默认行为是首先列表视图为新项目腾出空间 然后添加新项目 我做的大部分事情都是正确的 但问题是列表视图不会滚动到最后添加的
  • 确定 UIPickerWheel 是否正在滚动

    嘿 有什么方法可以确定 UIPickerView 当前是否正在滚动 我的应用程序确实需要该功能 这非常重要 谢谢 有一个技巧可以检测到这一点 但没有委托方法 属性来检测它是否正在滚动 将属性设置为 isScrolling 将 isScrol
  • 当 ff 矩阵内存分配不够时,在 R 中使用大数据集的相关矩阵

    我有一个简单的分析要做 我只需要计算列 或行 如果转置 的相关性 够简单吗 我整整一周都无法获得结果 我已经浏览了这里的大部分解决方案 我的笔记本电脑有 4GB 内存 我确实可以访问具有 32 个节点的服务器 我的数据无法在此处加载 因为它