配对 t 检验导致应用循环崩溃(已编辑)

2023-12-23

为了回应有用的评论,我编辑了原来的问题(我假设 for 循环和 apply 循环给出不同的结果)。

我正在使用 R 运行大量 2 组 t 检验,使用来自分隔表的输入。根据这里和其他地方的建议,我尝试了“for-loops”和“apply”来实现这一点。对于“正常”t.test,两者都可以很好地工作并给出相同的结果。然而,对于配对 t 检验,for-look 似乎有效,而 apply-loop 则无效。后来,我发现两个循环都遇到同样的问题(见下文),但 for 循环可以更优雅地处理这种情况(只有一个循环返回无效结果),而 apply-loop 完全失败。

我的输入文件如下所示:(第一行是标题行,数据行有一个名称,第 1 组有 4 个数据点,第 2 组有 4 个数据点):

header g1.1 g1.2 g1.3 g1.4 g2.1 g2.2 g2.3 g2.4
name1  0    0.5  -0.2 -0.2 -0.1 0.4 -0.3 -0.3
name2  23.2 24.4 24.5 27.2 15.5 16.5 17.7 20.0
name3  .....

等等(总共约 50000 行)。第一个数据行(以 name19 开头)被证明是罪魁祸首。

这是效果更好的 for 循环版本(在有问题的行上失败,但正确处理所有其他行):

table <- read.table('ttest_in.txt',head=1,sep='\t')
for(i in 1:nrow(table)) {
   g1<-as.numeric((table)[i,2:5])
   g2<-as.numeric((table)[i,6:9])
   pv <- t.test(g1,g2,paired=TRUE)$p.value
}

这是导致问题的“应用”版本

table <- read.table('ttest_in.txt',head=1,sep='\t')
pv.list <- apply(table[,2:9],1,function(x){t.test(x[1:4],x[5:8],paired=TRUE)$p.value})

约 50000 条数据线之一存在问题,因为所有成对比较的差异都是相同的,这在成对 t 检验中会导致未定义的 p 值(基本上为零)。应用循环崩溃并出现错误“数据本质上是恒定的”。对我(作为一名 R 新手)来说,仅仅因为 t.test 不喜欢某一数据而使整个脚本崩溃似乎不是一个好主意。在 for 循环中,该数据行也会导致错误消息,但循环会继续,并且所有其他 t 检验都会给出正确的结果。

我做错了什么根本性的事情吗?这种行为本质上禁止使用应用循环进行这种批量分析。或者有没有标准的方法来规避这个问题。为什么 t 检验不直接返回对该特定 p 值无效的内容而不是退出?


UPDATE既然你说 for 循环也会给出错误,并且你想要apply版本更加健壮,为什么不简单地添加一个tryCatch?

pv.list <- apply(table[,2:9],1, function(x) tryCatch( 
  t.test(x[1:4],x[5:8],paired=TRUE)$p.value, error=function(x) NA ))

这应该返回NA如果无法计算 p.value。您可以更改为另一个值(例如NULL, 0 or Inf)通过编辑错误处理函数。

Old Post

我注意到t.test(有点)给出了当某些值是时您发现的错误Inf(这似乎是一个错误):

> t.test(1:10, c(rep(1,9), Inf), paired=TRUE)
Error in if (stderr < 10 * .Machine$double.eps * abs(mx)) stop("data are essentially constant") : 
missing value where TRUE/FALSE needed

那么你真的明白这一点吗?或者它实际上说的是:

Error in t.test: data are essentially constant

但仍然不太清楚为什么 for 循环会起作用。但请注意,在你的 for 循环中你做了as.numeric,你没有这样做apply case...

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

配对 t 检验导致应用循环崩溃(已编辑) 的相关文章

  • 如何减小 R Plot 中图例的大小,同时仍使其可读?

    我试图用 R 中的两个 y 轴绘制多年来的一些数据 但是 每当我尝试包含图例时 图例就会主导我的绘图 当我使用其他地方建议的解决方案时 例如keyword和 或使用cex论据 在另一篇文章中建议here https stackoverflo
  • 闪亮的演示文稿 (ioslides):自定义 CSS 和徽标

    我安装了以下内容 RStudio 预览版 版本 0 98 864 2014 年 5 月 24 日 knitr 和shiny 的开发版本 来自 devtools install github c yihui knitr rstudio shi
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • R:错误消息---包错误:“functionName”未从当前命名空间解析

    我正在使用一个一直运行到 R3 0 的软件包 问题如上所述 当我们调用在 R 2 15 2 中工作的函数时 从 R 3 0 开始我们得到一个错误 Error in C solarspectrum3 as double lon as doub
  • R - 根据另一个数据框查找每组的重叠日期

    我有一个数据框 其中包含多个雨量计的降雨测量值 如下例所示 gt rnfl ID date value 1 250 2000 03 01 5 37 2 250 2000 03 02 0 00 3 250 2000 03 03 2 94 4
  • R 中大型稀疏矩阵的聚类分析

    我有一个包含 250000 笔交易 行 和 2183 项 列 的交易数据集 我想将其转换为稀疏矩阵 然后对其进行分层聚类 我尝试了包 sparcl 但它似乎不适用于稀疏矩阵 关于如何解决这个问题有什么建议吗 或者我可以使用任何其他包对稀疏矩
  • 有效地将环境从内部功能转移到全局环境

    我有一个在其中创建环境的函数 我希望将该环境分配给全局环境 目前我通过将环境分配给来做到这一点globalenv 作为最后一步 如下 funfun lt function inc 1 dataEnv lt new env dataEnv d
  • glm() 模型的交叉验证

    我正在尝试对我之前在 R 中构建的一些 glm 模型进行 10 倍交叉验证 我对cv glm 函数在boot包 尽管我已经阅读了很多帮助文件 当我提供以下公式时 library boot cv glm data glmfit K 10 这里
  • mclapply 用户时间大于已用时间

    我正在尝试使用mclapply的功能parallel封装在R 该函数通过计算对数似然距离将值分配给序列矩阵 这是一个 CPU 密集型操作 所结果的system time价值观令人困惑 gt system time mclapply work
  • 按绝对值排序

    有谁知道如何按绝对值对 R 中的向量进行排序 所以 2 3 1 gt 1 2 3 etc 如果我在 python 中这样做 我会创建一对每个值及其符号 按绝对值对对列表进行排序 然后重新应用符号 但我对 R 很陌生 所以不知道如何执行此操作
  • 通过 RSelenium 单击按钮

    我正在尝试使用 Rselarium 和 Rvest 来抓取 REI 的评论 吊床 我想点击底部的按钮 x 次 这样我就可以抓取所有评论 我有点失落 这是我到目前为止所拥有的 如果您也知道如何在取景器中预览您正在做的事情 而不是屏幕打印 那就
  • 如何在R中逐行写入文件

    我正在尝试逐行读取 csv 文件 并且仅选择左侧的第二个和第三个单元格以及右侧的第三个单元格 例如 如果这一行中有 17 个单元格 我将选取第 15 个单元格 然后我想合并这 3 个单元格 用逗号分隔 然后将此行写入一个新的 csv 文件
  • 在ggplot2中创建部分虚线

    我正在 R 中创建一个图 并且需要创建一条线 其中某些值是投影 投影用虚线表示 这是代码 df data frame date c rep 2008 2013 by 1 value c 303 407 538 696 881 1094 gg
  • R中有字典功能吗

    有没有办法在 R 中创建一个 字典 使其具有对 一些效果 x dictionary c Hi Why water c 1 5 4 x Why 5 我问这个是因为我实际上正在寻找两个分类变量函数 所以如果 x dictionary c a b
  • 如何在multilist中设置xlim?

    以下代码创建 3 个向量 并将它们显示为交错直方图 a lt c 1 2 3 b lt c 1 1 2 c lt c 1 1 1 l lt list a b c multhist l col c red green blue xlim c
  • 如何在 R 中查找平衡面板数据(又名,如何查找面板中的哪些条目在给定窗口内完整)

    我有来自 Compustat 的大量数据 我向其中添加了一些手工收集的数据 认真地从一堆旧书中手工收集 但我不想手工收集整个面板 只想随机选择一个子集 为了找到更大的集合 我从中随机选择 我想从 Compustat 的平衡面板开始 我看到p
  • 在 ggplot 中过滤管道 df

    我正在使用 dplyr 管道来清理我的 df 然后直接输入到 ggplot 中 但是 我只想一次只绘制一组 因此我需要过滤到该组 问题是 我希望比例保持不变 就好像所有群体都存在一样 是否可以在 ggplot 命令中进一步过滤管道 df 例
  • 在 R 中收集多组列[重复]

    这个问题在这里已经有答案了 我有一个宽数据框 需要将其收集或融化成一个高数据框 我遇到的问题是我有几组列需要保持关联 分组 我每个表单提交有 2 个用户 每个用户有 3 列数据 我想将这 6 列基本上以 3 组的形式堆叠起来 以便每个用户都
  • 一次评论多个对象

    假设您有一个变量 a 到 j 的列表 for x in 1 10 assign letters x x 您将如何评论那些最近创建的对象 我尝试过类似的事情 for x in 1 10 comment get letters x lt pas
  • 使用插入符和方法 = gamLoess 进行训练时 R 崩溃

    当我运行下面的代码时 R 崩溃了 如果我在训练调用中注释掉tuneGrid行 就不会发生崩溃 我已经用另一个数据集尝试过此操作 但仍然使 R 崩溃 崩溃消息是 R 会话中止 R遇到致命错误 会话被终止 开始新会话 代码是 library s

随机推荐

  • 动态选项卡中的动态内容(Angular、UI Bootstrap)

    我想在使用 AngularJs 和 UI Bootstrap 动态生成的选项卡的内容中使用 ng include 我这里有一个 Plunker http plnkr co edit 2mpbovsu2eDrUdu8t7SM p previe
  • 在 IIS 上运行时 GoogleWebAuthorizationBroker 将无法打开浏览器

    我有一个在 IIS 8 上运行的 Web 应用程序 这个 Web 应用程序 仅在本地运行 我们将其用作通过其打开的桌面应用程序Google Chrome 我正在尝试将视频上传到YouTube通过他们的 API 基本上我的问题就在这里 uc
  • Flutter:浮动操作按钮固定位置

    我有以下代码 return Scaffold appBar AppBar title Text Sample Code body ListView padding const EdgeInsets all 20 0 children
  • Typescript 库:隐藏内部导出

    我正在用 typescript 构建一个库 并通过 npm 发布 在作为库的起点的index ts中 所有公共类和枚举都被导出 import MyClass from internal my class import MyEnum from
  • 如何设置谷歌图表API区域设置

    我想将 google 图表 API 的语言设置为一个值 它当前使用访问该页面的浏览器的语言 如何将其设置为我的应用程序的语言 请参阅谷歌文档使用特定区域设置加载图表 https developers google com chart int
  • HTML 电子邮件 - 使图像适合表格单元格

    我有一张桌子 三个人td他们每个人都需要有图像 的宽度和高度td是固定的 但图像尺寸可能会变化 目标是在不扭曲细胞或图像本身的情况下拟合图像 不能用background image财产 我知道很糟糕 这是代码 table cellpaddi
  • 为什么预连接资源提示不起作用?

    我创建了一个测试页面crenshaw dev demo hints html http crenshaw dev demo hints html浏览器提示请求 dns prefetch 并预连接到 mac9416 com
  • PHP:对象类型转换为数组后出现奇怪的数组行为

    当你这样做时array的类型转换json decoded 值 与 assoc false PHP 创建一个带有字符串索引的数组 a array json decode 7 value1 8 value2 9 value3 13 value4
  • Spring Data Rest - PUT 存储库在子引用上静默失败

    I use Spring Data Rest with Spring Boot2 1 1 发布 我有课User with a ManyToMany与类的关系Skill 当我做一个POST用他的技能创建一个用户 一切都很顺利 当我做一个PUT
  • 公共常量字符串?

    可以使用这样的类 特定于设计 指南 吗 我正在使用 MVVM 模式 public static class Pages public const string Home Home xaml public const string View2
  • gets() 接受输入而不实际给它任何输入?

    我对 C 相当陌生 如果这是一个愚蠢的问题 我很抱歉 但是当我运行以下代码时 include
  • jsonp 没有在发送之前触发?

    我正在开发一个项目 使用 ajax 并将 dataType 设置为 jsonp 从不同域调用 Web 服务 ajax type GET url testService asmx async true contentType applicat
  • 你怎么知道何时使用左折叠和右折叠?

    我知道向左折叠会产生左倾树 而向右折叠会产生右倾树 但是当我伸手去寻找折叠时 有时我会发现自己陷入了令人头痛的想法中 试图确定哪种折叠是合适的 我通常最终会解开整个问题 并逐步完成适用于我的问题的折叠函数的实现 所以我想知道的是 确定向左折
  • 如何将 JCE 算法名称转换为 AlgorithmIdentifier 对象?

    我正在使用 BouncyCastle 1 54 我有一个 JCE 算法字符串 例如 ECDSAwithSHA256 我需要一个 org bouncycastle asn1 x509 AlgorithmIdentifier 对象 或者 我可以
  • 找到 Django URL 所需的权限而不调用它们?

    我的 Django 应用程序当前具有受 permission required 函数保护的 URL 该函数以三种不同的方式调用 作为views py中的装饰器 具有硬编码的参数 作为一个简单的函数 具有自动生成的参数 在自定义的基于类的通用
  • 切换到远程分支以分离头部[重复]

    这个问题在这里已经有答案了 这是我所有分支的列表 git branch a temp remotes heroku master remotes origin dev remotes origin master 当我打字时git check
  • 跳过 fgetcsv 方法的第一行

    我有一个 CSV 文件 我从 CSV 文件读取数据 然后我想跳过 CSV 文件的第一行 其中将包含任何标头 我正在使用这段代码 while emapData fgetcsv file 10000 FALSE Code to insert i
  • 放弃 C# 7.0 中功能的重要性?

    在体验新的 C 7 0 功能时 我坚持了下来discard特征 它说 丢弃是可以分配但无法读取的局部变量 从 即它们是 只写 局部变量 然后 示例如下 if bool TryParse TRUE out bool 当这有益时 真正的用例是什
  • Android 7.0中如何从相机或图库中选择图像进行裁剪?

    从图库和相机中选择图像进行裁剪 它是在 Android 7 0 以下完成的 但在 Android Naught 中它会在相机中崩溃 我使用 fileprovider 但不起作用 MainActivity java public class
  • 配对 t 检验导致应用循环崩溃(已编辑)

    为了回应有用的评论 我编辑了原来的问题 我假设 for 循环和 apply 循环给出不同的结果 我正在使用 R 运行大量 2 组 t 检验 使用来自分隔表的输入 根据这里和其他地方的建议 我尝试了 for loops 和 apply 来实现