【问题标题】:How to reverse the group comparison order for t.test()?如何反转 t.test() 的组比较顺序?
【发布时间】:2021-12-24 07:49:33
【问题描述】:

我想进行两个样本的独立 t 检验,我的分组变量“组”被分解为“0”和“1”。调用 t.test() 时,它会将差异计算为第 0 组的平均值 - 第 1 组的平均值,给我一个负差异和负置信区间。

如何颠倒比较顺序,以便 R 估计第 1 组的平均值 - 第 0 组的平均值?我知道它比较alphabetically,所以我假设它比较的是递增值的数字。我已经尝试从forcats 包中的fct_rev() 将组'1' 设置为参考组,但这并没有改变t.test 比较的顺序并且仍然给出负输出。这很重要,因为它是单面测试,所以我对差异的迹象有预期。

谢谢!

编辑:我想将名称保留为“0”和“1”,因为它们需要这样编码才能进行后续分析

【问题讨论】:

  • 1 - 如果组是数字,组将起作用。

标签: r t-test


【解决方案1】:

您可以在构造因子时使用levels 参数。可以恢复级别(参见下面的代码),也可以指定任意顺序:

# two samples with different mean
x <- c(rnorm(10, 5, 1), rnorm(10, 8, 1))

# the grouping variable
f1 <- factor(rep(0:1, each=10))

# the grouping variable with reverse order of levels
f2 <- factor(f1, levels=rev(levels(f1)))

t.test(x ~ f1)

t.test(x ~ f2)

【讨论】:

  • 谢谢!我的目标是使用fct_rev()(最初不起作用),但你的证明让我从另一种方式尝试。以前,我尝试在一系列子集和重塑之前反转级别,但现在我将反转级别进一步向下移动,这是一个版本:shapeddf &lt;- df %&gt;% gather (....) %&gt;% gather(...) %&gt;% mutate( group = fct_rev(as.factor(group)) ) 按照我想要的顺序比较 t 检验
【解决方案2】:

由于某种原因我无法发表评论,您能不能简单地重新编码您的变量并重新运行它,以便它们以正确的顺序运行? 例如:

mydata <- read.csv(yourdataset.csv, na.strings = "")
#make a new "recoded group" variable
mydata$group.recoded <- mydata$group
mydata <- within(mydata, group.recoded[group.variable==group0] <- "group2")

【讨论】:

  • 感谢您的建议。我已经编辑了我的帖子以反映我想保留这些名字,但我已经找到了修复
猜你喜欢
  • 2017-04-09
  • 2015-06-30
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 2016-05-09
  • 1970-01-01
  • 1970-01-01
  • 2011-07-21
相关资源
最近更新 更多