我有一个数据帧,

library(rstatix)
grp1 <- runif(10, min = 0, max = 100)  # Exemple de données numériques
grp2 <- runif(10, min = 0, max = 100)
grp3 <- runif(10, min = 0, max = 100)
grp4 <- runif(10, min = 0, max = 100)
status <- sample(c("alive", "death", "sick"), 10, replace = TRUE)  # Exemple de données caractère

my_data_frame <- data.frame(grp1, grp2, grp3, grp4, status)

我想为每一组做些什么.

  wilcox_test(grp1~ status, p.adjust.method = "fdr")

我试过了

for (i in 4) {
 
  var <- names(my_data_frame)
  test <- my_data_frame %>% wilcox_test(var[i] ~ status, p.adjust.method = "fdr")}

但第var[i]栏并不存在.

对于像GLM这样的其他测试,该语法可以工作

推荐答案

rstatix旨在很好地适应基于Tidyverse的工作流和管道,因此,您可以首先将数据集旋转到更长,分组并将分组的tibble传递到wilcox_test(),而不是循环:

library(rstatix)
library(dplyr)
library(tidyr)

grp1 <- runif(10, min = 0, max = 100)  # Exemple de données numériques
grp2 <- runif(10, min = 0, max = 100)
grp3 <- runif(10, min = 0, max = 100)
grp4 <- runif(10, min = 0, max = 100)
status <- sample(c("alive", "death", "sick"), 10, replace = TRUE)  # Exemple de données caractère
my_data_frame <- data.frame(grp1, grp2, grp3, grp4, status)

my_data_frame |>
  pivot_longer(-status, names_to = "grp") |>
  group_by(grp) |>
  wilcox_test(value ~ status, p.adjust.method = "fdr")
#> # A tibble: 12 × 10
#>    grp   .y.   group1 group2    n1    n2 statistic     p p.adj p.adj.signif
#>  * <chr> <chr> <chr>  <chr>  <int> <int>     <dbl> <dbl> <dbl> <chr>       
#>  1 grp1  value alive  death      3     3         3 0.7   0.857 ns          
#>  2 grp1  value alive  sick       3     4         3 0.4   0.857 ns          
#>  3 grp1  value death  sick       3     4         5 0.857 0.857 ns          
#>  4 grp2  value alive  death      3     3         3 0.7   0.7   ns          
#>  5 grp2  value alive  sick       3     4         8 0.629 0.7   ns          
#>  6 grp2  value death  sick       3     4        12 0.057 0.171 ns          
#>  7 grp3  value alive  death      3     3         7 0.4   0.629 ns          
#>  8 grp3  value alive  sick       3     4         8 0.629 0.629 ns          
#>  9 grp3  value death  sick       3     4         4 0.629 0.629 ns          
#> 10 grp4  value alive  death      3     3         3 0.7   0.7   ns          
#> 11 grp4  value alive  sick       3     4         4 0.629 0.7   ns          
#> 12 grp4  value death  sick       3     4         8 0.629 0.7   ns

创建于2024-02-09年第reprex v2.1.0

R相关问答推荐

按R中的组查找相邻列的行累积和的最大值

使用R中的Shapetime裁剪格栅文件

如何对数据集进行逆向工程?

如何删除gggvenn与gggplot绘制的空白?

lightgbm发动机在tidymmodels中的L1正则化""

gganimate在使用shadow_mark选项时不保留所有过go 的标记

如何在ggplot中标记qqplot上的点?

R函数,用于生成伪随机二进制序列,其中同一数字在一行中不出现超过两次

如何使用ggplot对堆叠条形图进行嵌套排序?

Ggplot2中geom_tile的动态zoom

为什么我使用geom_density的绘图不能到达x轴?

Data.table';S GForce-将多个函数应用于多列(带可选参数)

在列表中排列R数据框中的列顺序

汇总数据帧中的复制列,保持行的唯一性

在带有`R`中的`ggmosaic`的马赛克图中使用图案而不是 colored颜色

减少雨云面之间的间距并绘制所有统计数据点

为R中的16组参数生成10000个样本的有效方法是什么?

随机 Select 的非NA列的行均数

把代码写成dplyr中的group_by/摘要更简洁吗?

如何从矩阵绘制环弦图