如何两两比较多次测量的增减?

2024-01-13

我有一个数据,我想通过取差值来两两比较测量值,如果差值大于 0.2,则添加另一列为“是”,否则为“否”。就像图像中的示例数据一样。并且,在每个人的最后,如果至少有一个“是”,则最终结果为“是”。我已手动填写第一行,但我想对我的所有个人(1000 个人)执行相同的操作。在此输入图像描述 https://i.stack.imgur.com/2Ee83.png

library(readxl)
dd <- read_excel("dd.xlsx")
dd <- dput(dd)
structure(list(ID = c(1, 2, 3, 4, 5, 6), m1 = c("2.1", "1.4","NA", "4.0", "2.5", "NA"), 
               m2 = c("2.8", "1.5", "NA", "4.0", "3.8", "1.1"),
               m3 = c("3.5", "1.5", "NA", "4.0", "NA", "1.3"), 
               m4 = c("NA", "1.8", "1.8", "4.0", "NA", "1.3"), 
               m5 = c("NA","1.5", "2.9", "NA", "NA", "1.5"), 
               m6 = c("NA", "NA", "3.5", "NA", "NA", "1.2")), 
          class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L))

这种方法使用更长的枢轴来估计您的列,然后通过重命名更宽的枢轴将为您提供您想要的内容(请参阅第二个解决方案)。但是,如果您只是想要Final列,按 ID,只需执行以下操作:

  1. 获取的简单方法Final by ID
dd %>% 
  pivot_longer(cols = !ID) %>%
  mutate(value=as.numeric(value)) %>% 
  group_by(ID) %>% 
  summarize(Final = any(value-lag(value)>0.2))
  1. 如果您确实想要所有这些中间变量,请使用扩展方法
dd %>% 
  pivot_longer(cols = !ID) %>%
  mutate(value=as.numeric(value)) %>% 
  group_by(ID) %>% 
  mutate(diff=value-lag(value),
         gt=if_else(diff>0.2, "Yes", "No")) %>% 
  pivot_wider(id_cols = ID,names_from = name,values_from = value:gt) %>% 
  rowwise() %>% 
  mutate(Final = any(c_across(starts_with("gt"))=="Yes")) %>% 
  select(!c(diff_m1,gt_m1)) %>% 
  rename_with(~c("ID", "m1","m2","m3","m4","m5","m6",
                 "m2-m1", "m3-m2", "m4-m3", "m5-m4", "m6-m5",
                 "r(m2-m1)", "r(m3-m2)", "r(m4-m3)", "r(m5-m4)", "r(m6-m5)",
                 "Final"), .cols = everything()
  )

Output:

     ID    m1    m2    m3    m4    m5    m6 `m2-m1` `m3-m2` `m4-m3` `m5-m4` `m6-m5` `r(m2-m1)` `r(m3-m2)` `r(m4-m3)`
  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl> <chr>      <chr>      <chr>     
1     1   2.1   2.8   3.5  NA    NA    NA     0.7       0.7    NA      NA      NA   Yes        Yes        NA        
2     2   1.4   1.5   1.5   1.8   1.5  NA     0.100     0       0.3    -0.3    NA   No         No         Yes       
3     3  NA    NA    NA     1.8   2.9   3.5  NA        NA      NA       1.1     0.6 NA         NA         NA        
4     4   4     4     4     4    NA    NA     0         0       0      NA      NA   No         No         No        
5     5   2.5   3.8  NA    NA    NA    NA     1.3      NA      NA      NA      NA   Yes        NA         NA        
6     6  NA     1.1   1.3   1.3   1.5   1.2  NA         0.2     0       0.2    -0.3 NA         No         No        
# … with 3 more variables: `r(m5-m4)` <chr>, `r(m6-m5)` <chr>, Final <lgl>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何两两比较多次测量的增减? 的相关文章

随机推荐

  • NameError:名称“fcntl”未定义

    我已经安装了PuDB on python 3 4 2这是在virtualenv并运行在windows 7 sp1 我首先激活virtualenv workon env01 然后进入python控制台 python 现在我需要测试 PuDB
  • Excel 到 ADO RecordSet 的数字单元格具有空值

    我正在尝试从 Excel 文件导入一些数据来使用 但遇到了数字单元格值的问题 我有一些列的值 其中一些值都是数字 而其他值可能是数字和非数字值的混合 没有特殊字符 只有 A Z 字母 要将数据提取到记录集中 我正在执行以下操作 Set oc
  • PHP 中的负零等于 0 吗?

    我有一个非常基本的 MySQL 查询 它从数据库表中读取行 并将行值添加或减去定义为 total balance 的 PHP 字符串 例如 statement details query mysqli query con SELECT tr
  • 如何定义一个函数来检查句子结束后字符串是否有空格?

    这是我到目前为止尝试过的 def whitespace string for s in string if s 1 return s ended with whitespace s else return s was whitespace
  • round() 和 trunc() 函数有什么区别?

    我对这些功能很困惑 在数学中 rounding http en wikipedia org wiki Rounding表示四舍五入到最接近的整数 因此四舍五入 3 4 的结果是 3 四舍五入 3 6 的结果是 4 Truncating ht
  • Crystal Reports 使用 13.0.2000 的哪个版本?

    我的任务是对几年前编写的 ASP NET Web Forms 应用程序进行一些小的更改 该应用程序的实现者已经不在我们身边 几年前就离开了 该应用程序中有 6 个报告 所有报告都使用某些版本的 Crystal Reports 当我看着Web
  • 如何使用 Eloquent 查询两个坐标之间的距离

    我知道这个问题已经被问过很多次了 但我没想到要根据我的需要来制作 我需要查询距离另一个用户最近的用户 基本上 我有一个users表 这个表有一个one to one与的关系users locations具有纬度和经度字段的表 所以我看过这个
  • 是否可以一步在堆上创建 lambda? [复制]

    这个问题在这里已经有答案了 我们可以像这样创建一个 lambda auto x 我可以在堆上创建一个副本 如下所示 auto y new decltype x x 问题是 是否可以一步完成此操作 在堆上创建 lambda 而不需要额外的步骤
  • 我可以阻止 JDialog 在按下退出/输入键时关闭吗?

    我创建了一个对话框来接受用户击键来更改菜单项的键绑定 我希望 Enter 和 escape 成为用户可以绑定的键 但它们都会关闭对话框 如何拦截这些压力机 编辑 对话框是使用 JOptionPane 和自定义组件创建的 GetKeyComp
  • 初始化全局变量类

    对于这样一个基本问题表示歉意 但我无法弄清楚 我知道你可以像这样初始化一个类 QFile file C example 但是如何从全局变量初始化它呢 例如 QFile file QFile class int main file need
  • 有没有办法仅通过国家/地区名称获取时区? [复制]

    这个问题在这里已经有答案了 您好 我知道这个问题被问了很多次 但这些问题与网络服务有关 我正在开发一个应用程序 显示用户选择国家 地区的时区 例如 我有所有国家 地区的列表 当用户从中选择一个国家 地区时 我想按国家 地区名称 可能是字符串
  • Python Facebook API - 光标分页

    我的问题涉及学习如何使用 Facebook 的 Python API 检索我的整个好友列表 当前结果返回一个具有有限数量好友的对象以及指向 下一页 的链接 我如何使用它来获取下一组朋友 请发布可能重复的链接 任何帮助将不胜感激 一般来说 我
  • Linux 中的 -emit-llvm

    我是 LLVM 的新手 尝试在 Linux 上生成人类可读的 ll 文件 我安装了 llvm gcc 但据我所知它只能生成汇编代码 S 选项 有什么办法可以得到类似于 llvm 在线生成的东西compiler http llvm org d
  • 使用 IIS 以纯文本形式提供不带扩展名的文件

    我尝试过使用来自的答案IIS 如何提供没有扩展名的文件 https stackoverflow com questions 19950882 iis how to serve a file without extension
  • 对象引用和对象哈希码之间的区别

    java中对象的引用和同一对象的哈希码值有什么区别 它们是完全不同的两个概念 Cat oldCat new Cat Cat newCat new Cat Cat oldCatRef oldCat 在上面的例子中 oldCat and old
  • 在 SQL 输出中插入双引号

    例如 在运行查询并查看输出后 select from People 我的输出如下 First Last Email Ray Smith email protected cdn cgi l email protection 我如何导出这些数据
  • 如何使用 JavaScript 检查文件是否存在?

    如何使用 JavaScript 检查文件是否存在 在本例中我想检查的是 xml 文件 如果您使用的是 jQuery 您可以尝试加载该文件 ajax type GET url some xml success function found e
  • 如何强制 pytest 写入颜色输出?

    即使在写入管道时 如何强制 pytest 以颜色显示结果 似乎没有任何命令行选项可以执行此操作 从 2 5 0 开始 py test 有这个选项 color yes 从 2 7 0 开始 还应该可以执行以下操作 export PYTEST
  • Spring 与 JSF 2 的比较 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何两两比较多次测量的增减?

    我有一个数据 我想通过取差值来两两比较测量值 如果差值大于 0 2 则添加另一列为 是 否则为 否 就像图像中的示例数据一样 并且 在每个人的最后 如果至少有一个 是 则最终结果为 是 我已手动填写第一行 但我想对我的所有个人 1000 个