【问题标题】:Transform output of the pairwise.wilcox.test test into a list将 pairwise.wilcox.test 测试的输出转换为列表
【发布时间】:2012-08-03 10:56:35
【问题描述】:

我想从pairwise.wilcox.test转换输出矩阵:

> df <- data.frame(obs = c(rep("a", 10), rep("b", 10), rep("c", 10), rep("d", 10)), 

                   vars = c(runif(10, 1, 3), runif(10, 1, 6), runif(10, 3, 7), runif(10, 2, 9)))

> pairwise.wilcox.test(df$vars, df$obs)$p.value
             a          b         c
b 6.299985e-01         NA        NA
c 6.495053e-05 0.02052437        NA
d 6.495053e-05 0.01554483 0.6299985

放到一个列表中,例如:

a  b  6.299985e-01
a  c  6.495053e-05
a  d  6.495053e-05
b  c  0.02052437
b  d  0.01554483
c  d  0.6299985

有什么简单的方法吗?

干杯!

【问题讨论】:

    标签: r list


    【解决方案1】:

    你可以用这个

    temp <-pairwise.wilcox.test(df$vars, df$obs)$p.value
    df <- data.frame(expand.grid(dimnames(temp)),array(temp))
    na.omit(df)
    

    【讨论】:

    • 哇哦,很酷:-)。是否可以交换列 Var1 和 Var2 以使 Var2 在 Var1 之前出现?我尝试使用 expand.grid(dimnames(temp)[1],dim names(temp)[2])。一种简单的方法是仅使用 subset() 函数对列进行重新排序。但是,我认为可能有更酷的方法?
    • 你可以这样做:df[,c(1,2)] &lt;- df[,c(2,1)]
    猜你喜欢
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 2022-01-23
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    相关资源
    最近更新 更多