如何计算具有共同列名的不同数据框之间的差异

2024-03-05

我有三个数据帧,并尝试计算由数据帧 1 调节的两个数据帧(Df2 和 Df3)之间的差异。如以下示例中所述,我有三个数据帧:Df1、Df2 和 Df3,它们具有通用名称。第一步,在 Df1 中,我想将“标准”列的值与所有三列“Das”、“Dss”和“Tri”可能按行进行比较,以及这些列“Das”的任何值, “Dss”和“Tri”高于Df1中的“Standard”,计算Df2和Df3中相同位置的差异,并将差异放在单独的列中。

Df1             
    Names   Standard    Das Dss Tri
    Aa  3   3   6   2
    Ab  4   6   4   3
    Ac  2   5   2   4
    Ad  4   3   3   8
    Ae  6   4   5   7
    Af  4   5   7   5
    Ag  2   6   8   2
    Ah  9   7   6   2

Df2         
    Names   Das Dss Tri
    Aa  4   2   5
    Ab  7   5   4
    Ac  5   7   2
    Ad  6   4   3
    Ae  5   3   5
    Af  3   2   6
    Ag  2   5   4
    Ah  4   6   3

Df3

Names   Das Dss Tri
    Aa  5   3   5
    Ab  8   5   4
    Ac  6   7   2
    Ad  6   4   7
    Ae  5   3   8
    Af  4   5   6
    Ag  1   5   4
    Ah  4   6   3

最终输出

Df3             
    Names   Das Dss Tri Difference
    Aa  5   3   5   -1
    Ab  8   5   4   -1
    Ac  6   7   2   -1
    Ad  6   4   7   -4
    Ae  5   3   8   -3
    Af  4   5   6   -4
    Ag  1   5   4   1
    Ah  4   6   3   0

这是获取索引的脚本first biggest如果找到超过 1 个值,则为值,如果未找到值,NA被返回。

df1 <- structure(list(standard = c(3, 4, 2, 4, 6, 4, 2, 9), das = c(3, 
6, 5, 3, 4, 5, 6, 7), dss = c(6, 4, 2, 3, 5, 7, 8, 6), tri = c(2, 
3, 4, 8, 7, 5, 2, 2)), .Names = c("standard", "das", "dss", "tri"
), row.names = c(NA, -8L), class = "data.frame")

df2 <- structure(list(das = c(4, 7, 5, 6, 5, 3, 2, 4), dss = c(2, 
5, 7, 4, 3, 2, 5, 6), tri = c(5,4,2,3,5,6,4,3)), .Names = c("das", "dss", "tri"
), row.names = c(NA, -8L), class = "data.frame")

df3 <- structure(list(das = c(5, 8, 6, 6, 5, 4, 1, 4), dss = c(3, 
     5, 7, 4, 3, 5, 5, 6), tri = c(5,4,2,7,8,6,4,3)), .Names = c("das", "dss", "tri"
 ), row.names = c(NA, -8L), class = "data.frame")

# get indices. run through every row of df1
# and get the maximum column index > standard
idx.v <- sapply( 1:nrow(df1), function(idx) {
    t <- which(df1[idx, 2:4] > df1[idx, 1])
})

df3$result <- sapply(1:length(idx.v), function(ix) {
    col.idx <- idx.v[[ix]]
    len.idx <- length(col.idx)
    if (len.idx > 0) {
        res <- sum(df2[ix, col.idx] - df3[ix, col.idx])
    } else {
        res <- NA
    }
})

Output:

> df3
  das dss tri result
1   5   3   5     -1
2   8   5   4     -1
3   6   7   2     -1
4   6   4   7     -4
5   5   3   8     -3
6   4   5   6     -4
7   1   5   4      1
8   4   6   3     NA

感谢您的聊天。这就是你所需要的。

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

如何计算具有共同列名的不同数据框之间的差异 的相关文章

  • 如何在 Shiny 中提取动态生成的输入值?

    我正在创建一个闪亮的应用程序 它将根据客户的不同功能为客户生成分数 在我闪亮的应用程序中 我提供了 checkboxGroupInput 来选择所需的功能 根据所选功能 应用程序将动态地将 numericInput 添加到 Web ui 以
  • 绘制 Cox 回归的 Kaplan-Meier 图

    我使用 R 中的以下代码设置了一个 Cox 比例风险模型来预测死亡率 添加协变量 A B 和 C 只是为了避免混淆 即年龄 性别 种族 但我们真正对预测变量 X 感兴趣 X 是一个连续变量 cox model lt coxph Surv t
  • 将列表中的每个元素转换为数据框中的一列

    假设我有以下列表 d library combinat d permn c a b c 这看起来如下 1 1 a b c 2 1 a c b 3 1 c a b 4 1 c b a 5 1 b c a 6 1 b a c 是否可以将此列表的
  • 多个动态滤镜更新闪亮

    我希望能够让 UI 输入闪亮 并根据用户之前的选择进行自我更新 因此 在下面的示例中 预期的行为是用户选择cyl vsor carb那么这将 过滤数据集mtcars用于创建绘图 即用户根据过滤条件调整绘图并 更新其他过滤器中的剩余输入选择
  • 如何在 R 中的 for 循环内将值存储在向量中

    我正在开始使用 R 但我对以下问题感到非常沮丧 我试图将 for 循环内完成的某些计算的值存储到我之前定义的向量中 问题是如何进行索引 因为for循环迭代代码的次数取决于用户的输入 所以变量i不一定要从1开始 它可以从80开始 for举个例
  • `as.matrix` 和 `as.data.frame` S3 方法与 S4 方法

    我注意到定义as matrix or as data frame作为 S4 类的 S3 方法 使例如lm formula objS4 and prcomp object 开箱即用 如果它们被定义为 S4 方法 则这不起作用 为什么将方法定义
  • R - 重塑 - 熔化错误

    我正在尝试融化数据框 但出现了这个奇怪的错误 有什么想法吗 str zx7 data frame 519 obs of 5 variables calday new Date format 2011 01 03 2011 01 04 201
  • 在包加载之前如何知道 R 中特定函数属于哪个包?

    例如 我知道许多流行的功能 例如tbl df 我通常不记得它属于哪个包 即data table or dplyr 所以我必须始终记住并加载一个包 但我做不到 tbl df除非我加载了正确的包 在 R 控制台本身加载或安装包之前 有没有办法知
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • 如何动态地将 sliderInput 添加到闪亮的应用程序中?

    使用闪亮 我上传一个 csv 文件 并根据列名称 我需要向 ui 添加滑块 sidebarPanel fileInput file1 Upload CSV File to Create a Model accept c text csv t
  • 如何将旋转的 NetCDF 转换回正常的纬度/经度网格?

    我有一个带有旋转坐标的 NetCDF 文件 我需要将其转换为正常的纬度 经度坐标 经度为 180到180 纬度为 90到90 library ncdf4 nc open dat nf 对于尺寸 它显示 1 5 variables exclu
  • 在 R 上安装 TDA 包时出错:目标“diag.o”的配方失败

    使用 Ubuntu 16 04 和 R 3 4 1 安装 R 包 TDA 时收到错误消息 它似乎与制作 CGAL diag cpp 和 或 diag o 最后的完整错误打印输出 有关 我仔细看了这个 在 R 上安装 TDA 包时出错 htt
  • 自定义轴缩放后 ggplot2 缺少标签

    我正在尝试使用我的 x 轴应用自定义缩放ggplot2 and scales trans new 但是 当我这样做时 一些轴标签丢失了 有人可以帮我弄清楚为什么吗 Setup library tidyverse the data ds lt
  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • 是否有weighted.median()函数?

    我正在寻找类似形式的东西weighted mean 我通过搜索找到了一些解决方案 这些解决方案写出了整个函数 但希望有一些更用户友好的解决方案 以下软件包都有计算加权中位数的函数 aroma light isotone limma cwhm
  • R:改变堆积条形图的颜色

    library ggplot2 df2 lt data frame supp rep c VC OJ each 3 dose rep c D0 5 D1 D2 2 len c 6 8 15 33 4 2 10 29 5 head df2 g
  • 使用“assign()”为列表项分配值

    首先了解一些背景 我写了一个中缀函数 本质上取代了这个习惯用法 x length x 1 lt y 或者简单地说x lt append x y 对于向量 这里是 lt function x y xcall lt substitute x x
  • 更改ggplot2中的字体

    曾几何时 我改变了我的ggplot2字体使用windowsFonts Times windowsFont TT Times New Roman 现在 我无法摆脱这一切 在尝试设置family in ggplot2 theme 当我用不同的字
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐

  • 在 Rust 中,如何从 HashMap 的键创建 HashSet?

    我有两个HashMaps 并想要计算键的交集 是否有可能构建一个HashSet出于任何HashMap keys 回报 例如 use std collections HashSet HashMap fn main let mut map1 H
  • MongoDB C# - 如何将任意 JSON 文档保存为动态类型?

    我正在尝试编写一个通用 Web Api 控制器 它允许我将 JSON 文档保存到集合中 而无需指定 C 类型 我尝试将代码压缩为要点 public class PassThroughController ApiController Rout
  • 协议字典 Swift 4

    我有一个名为 playable 的协议 需要实现func play Class Damage and DrawACard均符合协议 protocol Playable class func play game Game value Int
  • 在 MAC 控制台上使用 Python 2.7.15,virtualenv 创建具有不同版本 Python 的环境

    这是我在 Mac 中的控制台的摘录 您可以看到控制台上的 Python 是 2 7 15 但在环境中它变成了 2 7 10 这是一个旧版本 有关原因以及如何修复它的任何帮助将受到热烈欢迎 dhcp 18 57 Wakeup6 jbs pyt
  • Visual Studio 2017更新后代码颜色问题

    我以前用 VS 的深色主题很舒服 今天 我将 VS 更新为v 15 2 26430 4 但突然遇到了视觉问题 深色模式下代码的颜色很糟糕 我几乎看不清它们 有办法解决吗 谢谢 我找到了一些解决方法 通过取消选中Enable rich cli
  • 张量流将标签向量操纵为“多个热编码器”

    是否有可能 以一种很好的方式 在张量流中实现下一个功能 假设我们有一个密集的标签向量 labels 0 3 1 2 0 我需要制作一个 多个热编码器 意思是 对于每一行 我需要 1 到标签索引减 1 所以所需的结果将是 0 0 0 1 1
  • 出现错误 400 / 404 - HttpUtility.UrlEncode 未编码完整字符串?

    为什么以下 URL 会出现以下 IIS 错误 A http 192 168 1 96 cms View aspx Show Small test http 192 168 1 96 cms View aspx Show Small test
  • 如何在TThread中设置堆栈大小?

    如何设置自定义堆栈大小TThread 我正在尝试重新引入构造函数TThread但它说ThreadProc不见了 但它就在那里System Classes type TThreadHelper class helper for TThread
  • PHP - 访问 SPAN 值

    我是 PHP 新手 但我正在为订单表单编写电子邮件脚本 我拥有所有值以及表单中没有的内容 其中包含一个跨度用于 javascript 访问客户端的文本元素 我需要做的就是在发布时访问这些跨度值 HTML
  • 图灵完整性需要什么逻辑门?

    我儿子最近在玩小小大星球2 我注意到游戏编辑器允许与门 或门和非门 它是图灵完备吗 如果是这样 任何人都可以推荐一个学习资源 将这些原语转换成更高级别的条件 if 之类的东西吗 你不需要并且one ofAND 或 OR 能够完成所有二进制逻
  • 在 emacs 中调试 python 程序

    如何在 emacs 中调试 python 程序 我在用着python mode el 我发现参考文献建议 import pdb pdb set trace 但我不知道如何使用它 Type M x cd将目录更改为您要调试的程序的位置 类型M
  • headerenricher Spring 集成和 java dsl

    我使用 Spring Integration 和 java dsl 规范来实现我的 IntegrationFlow 我想使用自定义标头丰富器将一些文件名添加到标头 它将类似于 public class FileHeaderNamingEnr
  • 如何根据设置的主题更改flutter中的状态栏图标和文本颜色?

    如何在没有任何第三方插件的情况下更新状态栏图标的颜色 在我的主题类中 我有一个函数 我正在其中尝试下面的代码 但尚未取得结果 截至目前的主题代码 custom light theme for app static final customL
  • 有没有更有效的方法将我的图像划分为重叠的块?

    我想将图像划分为重叠的块 并单独处理这些块 并将每个矩阵的输出存储到一个矩阵中 我尝试过使用im2col但这根本不实用 我的代码是 kek im2col images m 1 64 64 sliding for i 1 size kek 2
  • 如何增加 Firebase 实时数据库 (v9) 中的值

    我注意到有关于如何在 Javascript v8 中增加实时数据库值的说明 添加了 ServerValue increment 以支持无需事务的原子字段值增量 API 文档在这里 使用示例 firebase database ref nod
  • C#:以与分配相反的顺序处理资源是否有优势?

    许多年前 我被告诫要尽可能以与分配方式相反的顺序释放资源 那是 block1 malloc block2 malloc do stuff free block2 free block1 我想象在 640K MS DOS 机器上 这可以最大限
  • ASP.Net MVC 6 + WebAPI Auth - 将 MVC 重定向到登录,但如果使用 WebAPI,则返回 401

    我有一个 AngularJS MVC WebAPI 我正在尝试 使用标准 个人账户 进行MVC认证 使用相同的用户和密码进行基于 WebAPI 的身份验证 问题是 从 AngularJS 来看 一切正常 cookie 交换发生 Web AP
  • 使用 ExtJS 4 的动态模型

    在 ExtJS 3 x 中 我能够使用 Store 的 fields 属性 但在 ExtJS 4 中我似乎必须绝对使用模型 这很好 但就我而言 它不是静态模型 我需要动态定义字段 有时还需要更改它们 我可以重新创建一个模型 但我需要使用不同
  • Ruby 2.1 和 Nokogiri 安装错误?

    我知道这个问题已经在这里 解决 了很多次 但我已经尝试了所有的解决方案 但仍然无法使其发挥作用 这是我的错误 22 01 14 17 57 56 gt gem install nokogiri Building native extensi
  • 如何计算具有共同列名的不同数据框之间的差异

    我有三个数据帧 并尝试计算由数据帧 1 调节的两个数据帧 Df2 和 Df3 之间的差异 如以下示例中所述 我有三个数据帧 Df1 Df2 和 Df3 它们具有通用名称 第一步 在 Df1 中 我想将 标准 列的值与所有三列 Das Dss