与区间匹配并提取两个矩阵 R 之间的值

2024-01-03

我的列表中有 n 个矩阵,还有一个附加矩阵,其中包含我想要在矩阵列表中查找的值。

为了获取矩阵列表,我使用以下代码:

setwd("C:\\~\\Documents\\R") 


import.multiple.txt.files<-function(pattern=".txt",header=T)
{
list.1<-list.files(pattern=".txt")
list.2<-list()
for (i in 1:length(list.1))
{
list.2[[i]]<-read.delim(list.1[i])
}
names(list.2)<-list.1
list.2

}


txt.import.matrix<-cbind(txt.import)

我的列表如下所示:(我仅显示 n=2 的示例)。每个数组中的行数不同(这里我只取 5 行和 6 行来简化,但我的真实数据有超过 500 行)。

txt.import.matrix[1]

    [[1]]
     X.     RT.     Area.  m.z.      
1     1     1.01   2820.1  358.9777  
2     2     1.03   9571.8  368.4238  
3     3     2.03   6674.0  284.3294  
4     4     2.03   5856.3  922.0094  
5     5     3.03   27814.6 261.1299  


txt.import.matrix[2]

    [[2]]
     X.     RT.     Area.  m.z.      
1     1     1.01    7820.1 358.9777  
2     2     1.06    8271.8 368.4238  
3     3     2.03   12674.0 284.3294  
4     4     2.03    5856.6 922.0096  
5     5     2.03   17814.6 261.1299
6     6     3.65    5546.5 528.6475  

我想在矩阵列表中找到另一个值数组。该数组是通过将列表中的所有数组合并到一个数组中并删除重复项而获得的。

reduced.list.pre.filtering

     RT.   m.z.
1    1.01  358.9777
2    1.07  368.4238
3    2.05  284.3295
4    2.03  922.0092
5    3.03  261.1299
6    3.56  869.4558

我想获得一个新的矩阵,其中写有Area.匹配结果RT. ± 0.02 and m.z. ± 0.0002对于列表中的所有矩阵。输出可能是这样的。

     RT.   m.z.        Area.[1]      Area.[2]
1    1.01  358.9777    2820.1        7820.1
2    1.07  368.4238                  8271.8      
3    2.05  284.3295    6674.0        12674.0
4    2.03  922.0092    5856.3             
5    3.03  261.1299    27814.6            
6    3.65  528.6475    

我只知道如何仅匹配一个数组中的一个精确值。这里的难点是在数组列表中查找值,并且需要找到该值±一个区间。如果您有任何建议,我将非常感激。


Using non-equi从 data.table v1.9.7 的当前开发版本加入(请参阅安装说明 https://github.com/Rdatatable/data.table/wiki/Installation),它允许为连接提供非相等条件:

require(data.table) # v1.9.7
names(ll) = c("Area1", "Area2")
A = rbindlist(lapply(ll, as.data.table), idcol = "id")           ## (1)

B = as.data.table(mat)
B[, c("RT.minus", "RT.plus") := .(RT.-0.02, RT.+0.02)]
B[, c("m.z.minus", "m.z.plus") := .(m.z.-0.0002, m.z.+0.0002)]   ## (2)

ans = A[B, .(id, X., RT. = i.RT., m.z. = i.m.z., Area.), 
           on = .(RT. >= RT.minus, RT. <= RT.plus, 
                  m.z. >= m.z.minus, m.z. <= m.z.plus)]          ## (3)

dcast(ans, RT. + m.z. ~ id)                                      ## (4)
# or dcast(ans, RT. + m.z. ~ id, fill = 0)
#     RT.     m.z.   Area1   Area2
# 1: 1.01 358.9777  2820.1  7820.1
# 2: 1.07 368.4238      NA  8271.8
# 3: 2.03 922.0092  5856.3      NA
# 4: 2.05 284.3295  6674.0 12674.0
# 5: 3.03 261.1299 27814.6      NA

[1] 命名矩阵列表(称为ll此处)并将它们每个转换为数据表 using lapply(),并使用按行绑定它们rbindlist,并将名称添加为额外列 (idcol)。叫它A.

[2] 转换第二个矩阵(称为mat在这里)到数据表以及。添加与您要搜索的范围/间隔相对应的其他列(因为on=正如我们将在下一步中看到的,参数无法处理表达式yet)。叫它B.

[3] 执行条件连接/子集。对于中的每一行B,找到匹配的行A对应于提供给的条件on=参数,并提取列id, X., R.T. and m.z.对于那些匹配的行索引。

[4] 最好将其保留为 [3]。但如果您希望它如答案中所示,我们可以将其重新塑造为宽格式。fill = 0将取代NA结果中的 s 为0.

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

与区间匹配并提取两个矩阵 R 之间的值 的相关文章

  • R rvest 检索空表

    我正在尝试两种策略来从网络表中获取数据 library tidyverse library rvest webpage lt read html https markets cboe com us equities market stati
  • 在 R 4.0.2 中安装 rsvg 库 (conda-forge)

    我在下载 r 包时遇到困难rsvg 我首先使用 conda 为最新的 R 版本 4 0 2 创建了一个环境 如下所示指示 https anaconda org conda forge r base 我能够毫无问题地下载许多其他 R 包和生物
  • R Shiny - 将 csv 下载到工作目录

    我有一个 Shiny 应用程序 我想在其中完成以下任务 1 用户按下按钮 2 数据框导出为 csv 保存在工作目录 包含 server R 和 ui R 中 或者最好保存在下一级目录中 我希望这种情况自动发生 因为最终我会将其与 check
  • 使用 geom_line 绘制多条线(基于分组)

    请帮助我 关于当我尝试在 ggplot2 中使用 geom line 绘制分组的多条线时遇到的问题 当我尝试根据一个变量 列 即 区域 对行进行分组时 问题就出现了 GDP time series analysis gt group by
  • R从原始数据生成二维直方图

    我有一些 2D x y 的原始数据 如下所示 我想从数据生成二维直方图 通常 将 x y 值划分为大小为 0 5 的 bin 并计算每个 bin 中出现的次数 同时针对 x 和 y 有什么办法可以做到这一点吗 gt df x y 1 4 2
  • R:使用 dplyr 对列序列按行求和

    本着类似问题的精神here https stackoverflow com questions 28873057 sum across multiple columns with dplyr and here https stackover
  • 使用并行的 parLapply:无法访问并行代码中的变量

    我最近得到了一台具有多个核心的计算机 并且正在学习使用并行计算 我相当熟练lapply并被告知parLapply工作原理非常相似 但我没有正确操作它 看来我必须明确地将所有内容放入parLapply使其工作 即要使用的函数 变量等 和lap
  • 根据是否满足条件对绘图区域进行着色

    我正在使用创建线图ggplot and geom line 随着时间的推移而发展的价值观走廊 有时可能会发生上限低于下限 我将其称为 反转 并且我想突出显示在我的图中发生这种情况的区域 例如使用不同的背景颜色 搜索 Google 和 Sta
  • 使用不同时区的 POSIXct 到数字

    我想我一定不明白 POSIXct 是如何工作的 或者什么的 据我了解 它是自纪元以来的秒数 纪元是标准时间 例如 1970 01 01 GMT 我取两个 POSIXct 时间 一个在 EST 一个在 PST 它们是相同的绝对时间 然而 当我
  • 是否有 R 函数将 p.value 转换为显着性代码?

    summary显示 p values 的显着性代码 是否有 R 函数将 p value 转换为显着性代码 例如 0 02 gt 和 0 005 gt Use symnum如下所示 symnum了解更多信息 p values lt c 9 5
  • R 识别数据框列中的文本字符串

    我的数据框的一列包含单词和短语 我正在尝试为此列中具有特定文本字符串的字段创建一个虚拟变量 例如 kite cars 箱形风筝 模型车 我喜欢飞翔的风筝 世界汽车 myvector lt c kite cars box kites mode
  • R语言赋值

    我想知道 R 语言中的赋值是如何工作的 考虑以下 R shell 会话 gt x lt c 5 6 7 gt x 1 lt 10 gt x 1 10 6 7 gt 我完全理解 创建向量 5 6 7 并将其绑定到 符号 x 之后 x 会反弹到
  • 使用具有唯一订单号但重复订单组合的 arules 包的 R 篮子分析

    使用具有唯一订单号但重复订单组合的 arules 包进行 R 篮子分析 刚刚学习 R 我正在尝试使用 arules 包进行购物篮分析 但我完全接受任何其他包建议 来比较所购买的 6 种不同商品类型的所有可能组合 我的原始数据集如下所示 Or
  • 如何将表达式传递给ggplot中的geom_text标签? (继续)

    这是我的后续原问题 https stackoverflow com questions 63813557 how to pass an expression to a geom text label in ggplot了解如何将带下标的表达
  • 在 case_when 中创建 tidyeval 函数

    我有一个数据集 我喜欢根据这些值的概率分布来估算其中一个值 让我们先做一些可重现的例子 library tidyverse library janitor dummy1 lt runif 5000 0 1 dummy11 lt case w
  • 用典型的美元金额格式表示数值

    我有一个存储美元金额的数据框 它看起来像这样 gt a cost 1 1e 05 2 2e 05 我希望它可以显示为这样 gt a cost 1 100 000 2 200 000 在 R 中如何做到这一点 DF lt data frame
  • 将 ddply + mutate 与自定义函数一起使用?

    I use ddply相当频繁 但历史上有summarize 偶尔mutate 并且只有基本功能 例如mean var1 var2等等 我有一个数据集 我试图在其中应用一个自定义的 更复杂的函数 并开始尝试深入研究如何做到这一点ddply
  • 使用 ggplot2 在 3 个子图中绘制时间序列数据的原始值、环比变化和同比变化

    给定两个每月时间序列数据样本 我需要创建一个包含 3 个子图的图 plot1 表示原始值 plot2 表示逐月变化 plot3 表示逐年变化 我可以用下面的代码绘制绘图 但是代码太冗余了 所以我的问题是如何以简洁的方式实现这一目标 谢谢 l
  • 如何搜索多个字符串并将其替换为字符串列表中的任何内容

    我在数据框中有一列 如下所示 npt2 name 1 Andreas Groll M D 2 3 Pan Chyr Yang PHD 4 Suh Fang Jeng Sc D 5 Mostafa K Mohamed Fontanet Arn
  • 如何在 R 中按组对列进行排序

    我有一个 data frame 比如 df 如下所示 Hospital Name State Mortality Rate hospital 1 AA 0 2 hospital 2 AA 0 3 hospital 3 BB 0 3 hosp

随机推荐

  • 如何使用 LDAP 组成员身份同步设置 TeamCity [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 这是一个简短的指南 帮助您进行 TeamCity 的 LDAP 设置 在我设法让同步运行之前 我个人经历了相当多的挣扎 默认配置文件有
  • 是否可以在 MATLAB 中实现以下内容?

    给定 5x5 的图像 I i j 4 i j 当 i j 0 1 2 3 4 时 以及以下 Prewitt 运算符 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 如何计算梯度 幅度和方向 使用 Prewitt 算子
  • ASP.NET Core - 如何注入 IOptionsMonitor

    我怎样才能注射IOptionsMonitor
  • 将 php 与 bigcommerce api 集成

    我是 Bigcommerce Api 整个概念的新手 但我的 php 编程很好 如果我要将我可能创建的 php 代码与 bigcommerce api 集成 我无法确定从哪里开始 我的文件去哪里 他们具体是如何互动的 在 Bigcommer
  • 默认路由总是在react router中执行

    我正在开发一个项目 其中使用了引人注目的Dash 模板 在这里 我在从 URL 更改路由时遇到一些路由问题 auth js import React lazy Suspense from react import Spin from ant
  • CancellationToken 泄漏内存

    我有一个计时器 每 2 秒启动 2 个任务 我在一个简单的列表中跟踪这些任务 这样我可以在停止应用程序时等待它们完成 这些任务有效地进入数据库 运行几次更新并完成 任务本身的运行时间不会超过一秒 global variables to ke
  • 使用点击数据更新绘图[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试构建一个闪亮的应用程序 它允许用户单击绘图上的多个位置 然后单击按钮将这些坐标添加到绘图中 问题是我需要将这些坐标作为向量传
  • Haystack Faceted:__init__() 得到了意外的关键字参数“facet_fields”

    在享受 haystack 2 4 1 Django 1 8 的第一个成果的同时 我不得不承认我在学习它时遇到了困难 文档有时不完整 并且某些功能只有很少的示例 分面搜索就是其中之一 我正在关注文档 http django haystack
  • 如何使用openCV保存裁剪后的图像?

    我正在使用 python 中的 opencv 和face recognition 库捕获图像 这是我的程序的片段 while True ret frame video capture read rgb frame frame 1 face
  • Javascript平方数组中的所有元素不起作用

    function square arr var result concat arr result forEach function i i i i console log i return result var arr 1 2 3 4 co
  • BlueGiga BLE 开发工具

    我正在考虑尝试BlueGiga BLE112 套件 https www bluegiga com en US products bluetooth 4 0 modules ble112 bluetooth smart module 为 iO
  • 如何更改 DRF 中的验证错误响应?

    我想更改 JSON 当发生验证错误时 rest framework 或 Django 返回该 JSON 我将使用我的视图之一作为示例 但我想更改所有视图的错误消息 假设我有这个视图 旨在登录用户 提供电子邮件和密码 如果这些正确 它将返回
  • 使用 ggplot 堆积条形图

    我正在尝试使用以下数据框制作堆积条形图 totalleft 1S 2S 3S 4S 12S 25S tests A 000 5 0 10 10 0 NA A 000 A 001 10 8 10 NA NA NA A 001 A 002 5
  • 在 Android 中使用 Cordova 5.0 构建自定义 WebView

    我想用 Cordova 构建自定义 WebView 为此 我想重写 setWebChromeClient 和 setWebViewClient 方法 但为此我需要一个 SystemWebViewClient 它需要一个 SystemWebV
  • 当电话中断应用程序时,Android 应用程序会发生什么情况?

    我正在开发一个应用程序 在我的一项活动中我显示了一个进度对话框 我已经对其进行了管理 以便它在旋转过程中正确显示 并且我认为这也可以处理电话呼叫的情况 但是当我用电话测试它时 对话框消失了 那么电话呼叫到底对应用程序做了什么以及它是应用程序
  • 我的屏幕保护程序应用程序中出现奇怪的生命周期行为

    我刚刚开发了一个屏幕保护程序应用程序 我在其生命周期中发现了一个奇怪的行为 我的工作流程是这样的 开始我的RegisterService 我打电话的地方registerReceiver方法来注册一个BroadcastReceiver 可以接
  • Java,提取$符号之间的单词

    使用Java 我想提取美元符号之间的单词 例如 String this is first attribute color this is the second attribute size 我想拔出绳子 color and size并将它们
  • 使用 for 循环设置红色二维数组值

    我正在尝试创建一种方法 该方法将获取图像中的所有红色值并仅显示红色值 我的 getRedImage 方法遇到问题 我对此很陌生 任何帮助将不胜感激 public class SimpleRGB private int width heigh
  • 如何创建带前缀的 XmlElement 属性?

    我需要能够在 xml 元素中定义带有前缀的属性 例如
  • 与区间匹配并提取两个矩阵 R 之间的值

    我的列表中有 n 个矩阵 还有一个附加矩阵 其中包含我想要在矩阵列表中查找的值 为了获取矩阵列表 我使用以下代码 setwd C Documents R import multiple txt files lt function patte