处理agricolae Kruskal测试中的关系,R

处理agricolae Kruskal测试中的关系,R,r,statistics,missing-data,kruskal-wallis,R,Statistics,Missing Data,Kruskal Wallis,我正在使用agricolae包对一些非正常数据运行kruskal.test。有些组的值彼此完全相同。kruskal测试不能很好地处理这个问题,我在if(s){:缺少需要TRUE/FALSE的值时收到错误错误。起初,我以为这是因为所有值都是0,但当我将它们设为相同的大数(要测试)时,会出现相同的错误,函数将停止(通过循环运行函数)并且不计算第一个绑定变量以外的任何值 显然,在这些组上运行统计数据是没有意义的,因为它们不会有任何区别,但我正在使用由agricolae:kruskal生成的信息来生成一

我正在使用
agricolae
包对一些非正常数据运行
kruskal.test
。有些组的值彼此完全相同。
kruskal
测试不能很好地处理这个问题,我在if(s){:缺少需要TRUE/FALSE的值时收到错误
错误。起初,我以为这是因为所有值都是0,但当我将它们设为相同的大数(要测试)时,会出现相同的错误,函数将
停止
(通过循环运行函数)并且不计算第一个绑定变量以外的任何值

显然,在这些组上运行统计数据是没有意义的,因为它们不会有任何区别,但我正在使用由
agricolae:kruskal
生成的信息来生成一个汇总表,我需要包含这些变量。我更愿意继续使用这个包,因为它给了我很多有价值的信息。我能做些什么吗让它通过绑定的变量运行

dput(example)
structure(list(TREATMENT = c("A", "A", "A", "B", "B", "C", "C", 
"C", "D", "D"), W = c(0, 1.6941524646937, 1.524431531984, 0.959282869723864, 
1.45273122733115, 0, 1.57479386520925, 0.421759202661462, 1.34235435984449, 
1.52131484305823), X = c(0, 0.663872820198758, 0.202935807030853, 
0.836223346381214, 0.750767193777965, 1.18128574225979, 2.03622986392828, 
3.56466682539425, 0.919751117364462, 0.917347336682722), Y = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0), Z = c(2.1477548118197, 2.0111754022729, 
3.14642815196242, 4.46967452127494, 1.53715421615569, 2.36274861406182, 
2.33262528044302, 2.50970456594739, 2.96088598025103, 2.22841740590261
)), class = "data.frame", row.names = c(NA, 10L), .Names = c("TREATMENT", 
"W", "X", "Y", "Z"))
库(agricolae)
示例<代码>用于(2中的i:(ncol(示例))){
如果(var(示例[,i])>0){

krusk你能提供一个可复制的例子吗?@Hack-R你的愿望就是我的命令。谢谢。这会让你更容易帮助和理解这个问题。呜呼!非常感谢。这很有效!我通常会创建一个
数据框
,然后使用
行名(df)@您可以在函数中添加另一行,该行接受一个名为
tmp
的空对象,并将当前列的名称添加到该对象中(
tmp得到了它!
tmp
必须先执行。因此
tmp
library(agricolae)

example<-as.data.frame(example)


for(i in 2:(ncol(example))){
  krusk <- kruskal(example[,i],TREATMENT,group=TRUE)
print(krusk)  
}
for(i in 2:(ncol(example))){
  if(var(example[,i]) > 0){
  krusk <- kruskal(example[,i],example$TREATMENT,group=TRUE)
  print(krusk)  
  }
}