【问题标题】:Returning p value and correlation coefficient from modified cor.test从修改后的 cor.test 返回 p 值和相关系数
【发布时间】:2014-04-23 15:25:42
【问题描述】:

我正在尝试运行 cor.test 的修改版本,使用我在 stackoverflow 上另一个方便的线程上找到的以下代码:

cor_withN <- function(...) {
  res <- try(cor.test(...)$estimate, silent=TRUE)
  ifelse(class(res)=="try-error", NA, res)
}

我将它与 running() 命令一起使用来执行一堆包含一些 NA 的移动窗口相关性。我想至少返回相关系数和 p 值(但如果我能得到检验统计量和 df,那就太好了)。

我尝试删除 $estimate 部分,希望它会返回我上面提到的所有内容,但我得到了一个非常丑陋、不完整的输出。

代码(不带 running() 命令):

cor_withN2 <- function(...) { 
    res <- try(cor.test(...), silent=TRUE) 
    ifelse(class(res)=="try-error", NA, res) 
}
cor_withN2(x, y)
[[1]]
   t 
1.948752 

如果有任何关于如何修改它以返回我正在寻找的所有统计数据或实现此结果的其他方法的建议,我将不胜感激。

谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    欢迎来到 SO!

    我认为您的问题是 ifelse() 是为条件表达式向量以及替代值而设计的,而后者会自动且不透明地回收/截断以符合条件的长度(在您的情况下,可能缩短为 1,因此只返回 t 值)。

    考虑将函数中的最后一条语句改写为

    if (class(res)=="try-error") NA else unclass(res)[c("estimate","p.value")]
    

    ...(或尝试提供带有示例数据的可执行示例)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2017-10-06
      相关资源
      最近更新 更多