R &引用;数据基本上是恒定的;t检验误差
这是我的R代码,用于对细菌耐药性的一组数据进行t检验。这给了我错误代码:R &引用;数据基本上是恒定的;t检验误差,r,R,这是我的R代码,用于对细菌耐药性的一组数据进行t检验。这给了我错误代码: t.test(antibioticdata$Bacteria, antibioticdata$Inhibition, alternative = c("two.sided"), paired = FALSE, var.equal = FALSE) if(stderr
t.test(antibioticdata$Bacteria,
antibioticdata$Inhibition,
alternative = c("two.sided"),
paired = FALSE,
var.equal = FALSE)
if(stderr<10*.Machine$double.eps*max(abs(mx)、abs(my))停止时出错(“数据基本保持不变”):
缺少需要TRUE/FALSE的值
此外:警告信息:
1:平均值。默认值(x):参数不是数字或逻辑参数:返回NA
2:在var(x)中:
对因子x调用var(x)已被弃用,并将成为一个错误。
使用类似“all(复制的(x)[-1L])”的方法测试常量向量。
不确定我做错了什么,我只是遇到了同样的错误。这可能是因为每组中的所有值都是相同的 所以只要再写两个“如果还有”。对我来说,我做到了
Error in if (stderr < 10 * .Machine$double.eps * max(abs(mx), abs(my))) stop("data are essentially constant") :
missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In mean.default(x) : argument is not numeric or logical: returning NA
2: In var(x) :
Calling var(x) on a factor x is deprecated and will become an error.
Use something like 'all(duplicated(x)[-1L])' to test for a constant vector.
能否提供再现此问题的最小输入数据集(最小的复制数据集)?这可能有助于故障排除。我相信这会为正在发生的事情提供线索:
调用因子x上的var(x)
。如果细菌
或抑制
之一是一个因素,则会发生错误和警告。的可能重复请查看可能重复的链接,这可能会回答您的问题。尽管错误消息足够清楚,但请给出一个答案。您是否有意对分类数据使用t检验?由于分类值不是正态分布,甚至没有有意义的均值或方差,因此不清楚您希望通过运行测试发现什么。也许R只是为了保护你不受统计学上的胡说八道的影响。“不确定我做错了什么”的答案可能是“试图对分类数据进行t检验”。
library("greenbrown")
apply(data.table, 1, function(x){
if(AllEqual(x[1:9])){return(1)}
else if(AllEqual(x[1:4]) & AllEqual(x[5:9])){return(0)} else {
t.test(as.numeric(x[1:4]), as.numeric(x[5:9]))->t.results
return(t.results$p.value)
}
})->P.for.data.table