【问题标题】:R - Using Batlett's test function for each column in a data frameR - 对数据框中的每一列使用 Batlett 的测试函数
【发布时间】:2020-02-12 11:14:05
【问题描述】:

我有一个数据框,我需要为其中的每一列应用bartlett.test() 函数。如果可能,我需要使用apply()sapply() 函数来运行它。

我的样本数据是这样的:

df <- data.frame(ENSG00000000003 = c(10, 50, 30, 40), ENSG00000000419 = c(20, 60, 100, 24), ENSG00000000457 = c(1, 10, 20, 70), group = c("yes","no","no","yes"))
rownames(df) <- c("sample01", "sample02", "sample03", "sample04")
df
         ENSG00000000003 ENSG00000000419 ENSG00000000457 group
sample01              10              20               1   yes
sample02              50              60              10    no
sample03              30             100              20    no
sample04              40              24              70   yes

运行单个列,我的代码是:

pvalue <- bartlett.test(ENSG00000000003 ~ group, df)

pvalue

    Bartlett test of homogeneity of variances

data:  ENSG00000000003 by group
Bartlett's K-squared = 0.10672, df = 1, p-value = 0.7439

我的预期输出将在我的数据框的最后一行包含 Bartlett 检验 p 值。

【问题讨论】:

    标签: r dataframe statistics hypothesis-test


    【解决方案1】:

    这是使用lapply()的一种方式:

    res <- lapply(df[,-4], bartlett.test, df$group)
    ps  <- sapply(res, getElement, "p.value")
    df  <- rbind(df, pval=c(ps, NA))
    df
             ENSG00000000003 ENSG00000000419 ENSG00000000457 group
    sample01      10.0000000      20.0000000       1.0000000   yes
    sample02      50.0000000      60.0000000      10.0000000    no
    sample03      30.0000000     100.0000000      20.0000000    no
    sample04      40.0000000      24.0000000      70.0000000   yes
    pval           0.7439055       0.1417199       0.1950732  <NA>
    

    这是使用包的另一种方式:

    library(matrixTests)
    ps <- col_bartlett(df[,-4], df$group)$pvalue
    df <- rbind(df, pval=c(ps, NA))
    df
             ENSG00000000003 ENSG00000000419 ENSG00000000457 group
    sample01      10.0000000      20.0000000       1.0000000   yes
    sample02      50.0000000      60.0000000      10.0000000    no
    sample03      30.0000000     100.0000000      20.0000000    no
    sample04      40.0000000      24.0000000      70.0000000   yes
    pval           0.7439055       0.1417199       0.1950732  <NA>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      • 2019-01-18
      • 2015-04-19
      相关资源
      最近更新 更多