【问题标题】:R Studio T testR Studio T 测试
【发布时间】:2018-05-23 20:44:41
【问题描述】:

我正在 RStudio 中完成一项任务,研究汽车制造商及其碰撞安全等级之间的差异。现在我只想测试黑白福特和雪佛兰,但“品牌”类别还有 20 个品牌。 为了使用这些变量执行简单的 T 测试,我尝试了

t.test(Head_IC~make, Alternative="two.lateral",paired=T)

这给了我

"分组因子必须正好有 2 个级别"

我在堆栈上环顾四周,发现人们通常使用逗号来修复此错误。我发现如果我放置一个逗号黑白“Head_IC”和“make”,我会得到另一个单独的错误。我的问题是我的 x 和 y 值吗?还是 b/c “make” 由几个不同的品牌组成? 谢谢您的帮助!

【问题讨论】:

  • 是的,您必须过滤数据框以仅包含您正在测试的两个级别。在这种情况下,过滤等于“福特”或“雪佛兰”的行。顺便说一句,这很可能不是配对 T 检验。
  • 非常感谢!将 .csv 更改为仅包含 ford 和 chevy 允许测试运行。你是对的,这是一个未配对的测试。
  • 为什么要使用配对测试?
  • 这是个好问题...

标签: r grouping t-test


【解决方案1】:

R 使用所谓的“方法”来执行不同的行为,具体取决于赋予函数的对象类型。

t.test(Head_IC~make, alternative= "two.sided", paired=T)

不同于

t.test(Head_IC, make, alternative= "two.sided", paired=T)

第一个接受一个公式参数,其中所有数字数据在Head_IC,所有类别数据在make。第二种形式假定第一组的所有数字数据都在Head_IC 中,第二组的所有数字数据都在make 中。

这是有益的,因为它可以让您方便地获得相同的结果,即使您的数据格式可能略有不同。

很遗憾,您发现,您的数据格式不适合使用t.test。有几种方法可以解决这个问题。

子集您的数据

data_subset <- your_data_object[your_data_object$make %in% c("Ford", "Chevrolet"), ]
t.test(Head_IC~make, alternative= "two.sided", paired=T, data = data_subset)

获取两个向量

Ford <- your_data_object$Head_IC[your_data_object$make == "Ford"]
Chev <- your_data_object$Head_IC[your_data_object$make == "Chevrolet"]

t.test(Ford, Chev, alternative = "two.sided", paired = TRUE)

有很多很多方法可以解决您的问题,并且您可能希望研究如何对您的数据进行子集化和转换,以使用您正在使用的任何工具集。

【讨论】:

  • 太棒了!这真的很有帮助!感谢您的全面回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 2020-09-28
  • 2012-09-13
  • 2018-08-01
相关资源
最近更新 更多