数据帧 R 中的成对减法

2023-11-29

我有一个包含 576 行和 5 列的数据框,如下所示:

Sample  Value1  Value2
A   23,2    NA
A   21,5    23,5
A   22,4    22,56
B   20,56   26,54
B   21,5    25,3
B   22,3    24,6
C   26,35   22,54
C   26,5    21,68
C   27,45   23,1

我需要两两计算每组中的值之间的差异,并得到如下结果:

Sample  Value1  Value2  Dif1    Dif2
A        23,2   NA       1,7    NA
A       21,5    23,5    0,9     0,94
A       22,4    22,56   0,8     NA
B      20,56    26,54   0,94    1,24
B       21,5    25,3    0,8     0,7
B       22,3    24,6    1,74    1,94
C      26,35    22,54   0,15    1,24
C       26,5    21,3    0,95    2,3
C      27,45    23,6    1,1     1,06

然后将相差超过 2 的主值更改为 NA,如下所示:

Sample  Value1  Value2  Dif1    Dif2
A        23,2     NA    1,7     NA
A       21,5     23,5   0,9     0,94
A       22,4     22,56  0,8     NA
B       20,56    26,54  0,94    1,24
B       21,5     25,3   0,8     0,7
B       22,3     24,6   1,74    1,94
C      26,35     22,54  0,15    1,24
C      26,5     21,3    0,95    2,3
C      27,45    NA      1,1     1,06

提前致谢


你可以尝试

res <-  unsplit(lapply(split(df1, df1$Sample), function(x) {
     x1 <- cbind(x,apply(x[-1], 2, FUN=function(y)
               combn(y,2, function(.y) abs(.y[1]-.y[2]))))
      x1[2:3][x1[4:5]>2] <- NA
      x1[4:5] <- x1[c(1,3,2),4:5] 
      x1 }), df1$Sample)
colnames(res)[4:5] <- paste0('Dif', 1:2)
res
#    Sample Value1 Value2 Dif1 Dif2
# 1      A  23.20     NA 1.70   NA
# 2      A  21.50  23.50 0.90 0.94
# 3      A  22.40  22.56 0.80   NA
# 4      B  20.56  26.54 0.94 1.24
# 5      B  21.50  25.30 0.80 0.70
# 6      B  22.30  24.60 1.74 1.94
# 7      C  26.35  22.54 0.15 1.24
# 8      C  26.50  21.30 0.95 2.30
# 9      C  27.45     NA 1.10 1.06

data

df1 <- read.table(text="Sample  Value1  Value2
  A   23,2    NA
  A   21,5    23,5
  A   22,4    22,56
  B   20,56   26,54
  B   21,5    25,3
  B   22,3    24,6
  C   26,35   22,54
  C   26,5    21,3
  C   27,45   23,6", sep="", header=TRUE, dec=',',stringsAsFactors=FALSE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据帧 R 中的成对减法 的相关文章

随机推荐

  • 张量流中的加权成本函数

    我试图将权重引入以下成本函数 cost tf reduce mean tf nn sparse softmax cross entropy with logits logits logits labels y 但不必自己做 softmax
  • fork()在for循环中执行

    int main int argc char argv int i 0 while i lt 2 fork system ps o pid ppid comm stat i return EXIT SUCCESS 谁能告诉我 ps 命令执行
  • Visual Studio 2012 上的 mySQL 数据源

    我一直在阅读有关 mySQL 数据源以及将 mySQL 与实体框架结合使用的能力 但如果不使用数据源对话框 我无法真正使用 mySQL 生成 EF 如何将 mySQL 数据库添加到此类对话框 这是我到目前为止所做的 已安装mySQL 连接器
  • 用于传递块的 Ruby 语法 [重复]

    这个问题在这里已经有答案了 为什么带大括号的语法按预期工作 class SomeClass include Parser Http new agent PASSED This block was passed to Http new end
  • 如何使用mockito verify()验证一个方法被调用两次

    我想通过mockito verify验证一个方法是否至少被调用一次 我使用了验证 它抱怨如下 org mockito exceptions verification TooManyActualInvocations Wanted 1 tim
  • 如何测试 IPC::Run3 的退出状态

    我正在尝试测试 Perl 模块 IPC Run3 但难以检查命令是否失败或成功 我知道如果 IPC Run3 的参数有问题 它会发出退出代码 但是如果参数没问题但命令不存在怎么办 我如何测试以下示例 有一个子程序来调用 Run3 sub r
  • 转换为 PHP REST CURL POST

    我们如何将此代码转换为 PHP REST CURL POST POST https apis live net v5 0 me skydrive files access token ACCESS TOKEN Content Type mu
  • 如何在 mac os x 10.7.2 Lion 上安装 PIL

    我尝试过谷歌搜索并查找其他人的问题 但是 我仍然找不到在 mac os x 10 7 2 Lion 上安装 PIL 适用于 python 2 6 或 2 7 的清晰 简单的方法 如果你使用homebrew 您只需安装 PILbrew ins
  • gnuplot 条形图上的 Y 值?

    我可以让 gnuplot 在其条形上显示数据点的精确 y 值或高度 使用 带框 绘制 吗 我希望该图易于阅读 这样就无需将条形顶部与 y 轴对齐并猜测该值是多少 您可以使用标签样式并将其与框样式结合到绘图命令中 标签样式需要 3 列数据 x
  • Oracle 中的 DATEDIFF 函数 [重复]

    这个问题在这里已经有答案了 我需要使用 Oracle 但 DATEDIFF 函数在 Oracle DB 中不起作用 在Oracle中如何编写以下代码 我看到一些使用 INTERVAL 或 TRUNC 的示例 SELECT DATEDIFF
  • 如何在张量流中使用预训练模型作为不可训练子网络?

    我想训练一个包含子网络的网络 我需要在训练期间保持修复 基本思想是在预训练网络 inceptionV3 中添加一些层 new layers gt pre trained and fixed sub net inceptionv3 gt ne
  • 根据第二个数组过滤 numpy 数组中的行

    我有 2 个 2d numpy 数组 A 和 B 我想删除 A 中出现在 B 中的所有行 我尝试过这样的事情 A np isin A B 但 isin 保留 A 的维度 我需要每行一个布尔值来过滤它 编辑 像这样的东西 A np array
  • Vue 模板或渲染函数尚未定义,我两者都没有使用?

    这是我的主要 JavaScript 文件 import Vue from vue new Vue el app 我的 HTML 文件 div div 使用运行时构建的 Vue js 的 Webpack 配置 alias vue vue di
  • 通过计时器在 JDialog 中设置动态 JLabel 文本

    我正在尝试制作一个 JDialog 它将在 JLabel 上向用户显示动态消息 该消息应该是从 1 到 10 的计数 并且应该每秒更改一个数字 问题是 当我调试它时 它在 dia setVisible true 之后立即停止 除非我关闭 J
  • 在 R 中提取日期

    我在 R 中处理日期方面遇到了很大的困难 而在 SPSS 中可以很轻松地做到这一点 但我很乐意留在 R 中完成我的项目 我的数据框中有一个日期列 想要完全删除年份以保留月份和日期 这是我的原始数据的峰值 gt head ds date 1
  • 在不改变宽度的情况下减少条之间的间距

    我正在创建一个像这样的条形图 gender M F numbers males females bars plt bar gender numbers width 0 1 bottom None align center data None
  • 合并具有公共元素和多个数据点的数组

    我正在尝试使用直接的 Javascript 将两个 Javascript 数组合并为一个数组 我正在努力准确地完成以下两个问题中所提出的问题 然而 我的数据有几个点需要合并 而不是单个项目 并且数组之间有一个完全相同的公共元素 以下是其他问
  • 匹配 Swift 中对象的数据类型

    Swift 中如何匹配对象的数据类型 Like var xyz Any xyz 1 switch xyz case let x where xyz as AnyObject println x is AnyObject Type case
  • 如何使用循环来抓取 R 中多个网页的网站数据?

    我想应用一个循环来从 R 中的多个网页中抓取数据 我能够抓取一个网页的数据 但是当我尝试对多个页面使用循环时 我收到了一个令人沮丧的错误 我花了几个小时修修补补 但无济于事 任何帮助将不胜感激 这有效 GET COUNTRY DATA li
  • 数据帧 R 中的成对减法

    我有一个包含 576 行和 5 列的数据框 如下所示 Sample Value1 Value2 A 23 2 NA A 21 5 23 5 A 22 4 22 56 B 20 56 26 54 B 21 5 25 3 B 22 3 24 6