将结果汇总打印到R中的stdout

时间:2012-06-11 16:26:06

标签: r

我碰到了墙,相信我错过了一些非常简单的东西。

我有一个列表,其中包含多个wilcoxon测试的结果(使用Bonferroni更正),并希望使用multcomp生成一个类似于Dunnett测试输出的表(即没有显示行号)向上和间隔很好。)

Example Table

当我将其作为数据框打印时,行号显示出来,列中的文本值右对齐。

列表由以下人员创建:

for (i in 2:length(split.set)) {
  wrs.mod <- suppressWarnings(wilcox.test(split.set[[1]]$VALUE, split.set[[i]]$VALUE))
  stn.results[i - 1] <- as.character(unique(split.set[[i]]$TREATMENT))
  stat.results[i - 1] <- as.numeric(wrs.mod$statistic)
  p.results[i - 1] <- signif(wrs.mod$p.value, 3)
  if (wrs.mod$p.value < 0.05/(length(split.set) - 1)) sig.results[i - 1] <- "*" else sig.results[i - 1] <- NA
}
wrs.results <- list(Treatment = stn.results, Statistic = stat.results, p = p.results, Significant = sig.results)

如何将其格式化为一个看起来不错的打印表?

1 个答案:

答案 0 :(得分:3)

不要将其格式化为list,而是将其格式化为data.frame并打印出来:

wrs.results <- data.frame(Treatment = stn.results, Statistic = stat.results, Pvalue = p.results, Significant = sig.results)
print(wrs.results)

您可以通过多种方式自定义数据框的结构(以及外观)。您可能更喜欢将处理视为行名称:

wrs.results <- data.frame(row.names = stn.results, Statistic = stat.results, Pvalue = p.results, Significant = sig.results)

或自定义列名称:

colnames(wrs.results) = c("Treatment", "Statistic", "P(>|t|)", "Significance")