我正在RStudio做一项作业,检查汽车制造和他们的碰撞安全等级之间的差别。现在,我只想测试b/w福特和雪佛兰,但“制造”类别有另外20款。使用这些变量执行简单的T测试
t.test(Head_IC~make,alternative= "two.sided",paired=T)
这给了我
“分组因素必须有精确的两个层次”
我环顾了一下堆栈,发现人们通常使用逗号来修复这个错误。我发现,如果我放置一个逗号b/w "Head_IC“和"make”,我会得到另一个单独的错误。我的问题b/w是我的x和y值吗?还是由几个不同品牌组成的b/c“制造”?谢谢你的帮助!
发布于 2018-05-23 20:54:33
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)有很多很多方法可以解决您的问题,您可能想要研究如何对您的数据进行子集和转换,这些方法可以与您正在使用的任何一组工具一起使用。
https://stackoverflow.com/questions/50497187
复制相似问题