计算现有循环中Wilcoxon的效应大小

ho

我是R的新手/中级用户,他从未真正接触过循环和编写函数。昨天我偶然发现了一段不错的代码,可以让我对整个数据集进行Wilcoxon测试。但是,我也希望它可以计算效果的大小,而且似乎无法将该函数添加到现有代码中。您的任何输入将不胜感激。

Wilcoxon循环:

    test.fun <- function(data, col) { 

 c1 <- combn(unique(data$group),2)
 sigs <- list()
 for(i in 1:ncol(c1)) {
    sigs[[i]] <- wilcox.test(
                   as.numeric(data[data$group == c1[1,i],col]),
                   as.numeric(data[data$group == c1[2,i],col])
                 )
    }
    names(sigs) <- paste("Group",c1[1,],"by Group",c1[2,])

 tests <- data.frame(Test=names(sigs),
                    W=unlist(lapply(sigs,function(x) x$statistic)),
                    p=unlist(lapply(sigs,function(x) x$p.value)),row.names=NULL)


 return(tests)
}

我想粘贴到此代码中的函数:

rFromWilcox <-function(wilcoxModel, N){ 
z<- qnorm(wilcoxModel$p.value/2)
r<- z/ sqrt(N)
cat(wilcoxModel$data.name, "Effect Size, r = ", r)
}
rFromWilcox(wilcoxModel, N)

在此先感谢您,如果您还有其他需要,请与我联系。

用户7396508

这是我尝试组合这些功能的尝试。

请不要在我的个人资料中警告我从长远来看不是专家-我回答SO的动机是a)兴趣和b)我自己的进步。因此,请在您相信之前仔细仔细检查任何结果。至少它会带您前进,直到有人提出我的错误:)。

因此请牢记:

首先,您应该cat从中删除该rFromWilcoxon,然后将其替换为r

然后test.fun像这样更改

test.fun <- function(data, col, group = 'group') { 

     c1 <- combn(unique(data[[group]]),2)
     N  <- nrow(data) / ncol(c1)    # Calculates N assuming all groups are equal size
     sigs <- list()

     for(i in 1:ncol(c1)) {
          sigs[[i]] <- wilcox.test(
               as.numeric(data[data[[group]] == c1[1, i], col]),
               as.numeric(data[data[[group]] == c1[2, i], col])
          )
     }


     r <- lapply(sigs, function(i) rFromWilcox(i, N))    # Applies rFromWilcox function

     names(sigs) <- paste("Group",c1[1,],"by Group",c1[2,])

     tests <- data.frame(Test = names(sigs),
                         W = unlist(lapply(sigs,function(x) x$statistic)),
                         p = unlist(lapply(sigs,function(x) x$p.value)),row.names=NULL,
                         r = unlist(r))
tests
}

同样不是我假设所有组的大小都相等。如果您的组不相等,我认为您只需要计算N,并rFromWilcox为每个组合在for循环内调用

额外说明:在您发布的原始功能中,要测试的组必须位于称为“组”的列中。现在,您可以使用您选择的列名进行测试,例如,test.fun(iris, 1, 'Species')将在iris数据集中按“种类”对Sepal.Length进行测试

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何计算对R的逻辑回归的效应大小?

来自分类Dev

用循环中的行填充现有数据框

来自分类Dev

文件大小在for循环中

来自分类Dev

如何计算 R 中 Cox 回归效应大小的统计功效?

来自分类Dev

在for循环中增加向量的大小

来自分类Dev

计算循环中值的出现

来自分类Dev

计算for循环中的输入文件

来自分类Dev

计算循环中的数字总和

来自分类Dev

Javascript-for循环中的计算

来自分类Dev

计算循环中的数字总和

来自分类Dev

Readlines()和for循环中的计算

来自分类Dev

计算循环中的迭代次数

来自分类Dev

计算for循环中的输入文件

来自分类Dev

在python循环中过度计算对

来自分类Dev

while循环中JQuery的计算

来自分类Dev

Javascript 在 for 循环中计算

来自分类Dev

从现有表计算

来自分类Dev

将新属性添加到FOR循环中的现有JSON

来自分类Dev

如何在for循环中向现有matplotlib图形添加行?

来自分类Dev

如何在for循环中的批处理命令中附加到现有文件名

来自分类Dev

Jupyter Notebook RuntimeError:无法在现有事件循环中使用HTMLSession

来自分类Dev

在foreach循环中将Xelement添加到现有Xelement中

来自分类Dev

在foreach中的每个循环中,在现有数组中创建新数组

来自分类Dev

在循环中将字符串列表(嵌套列表)追加到现有列表

来自分类Dev

在 foreach 循环中向现有数组键添加值

来自分类Dev

Wilcoxon循环测试

来自分类Dev

有什么简单的方法可以在for循环中找到结构成员的大小

来自分类Dev

为什么在循环中生成的Matlab图形具有略微不同的文件大小?

来自分类Dev

如何增加每个循环中具有全局指针的数组大小

Related 相关文章

热门标签

归档