apa_list(列表)中的格式化表

时间:2018-09-10 22:57:59

标签: r papaja

我成功地将表格打印为PDF。标准层次回归 三个步骤。但是,我的问题有两个:1)如何添加星号以标记协变量上的sig p值,以及2)如何删除AIC等行。 此时,我只是打开Word中的pdf来编辑表格,但认为有人可能有解决方案。谢谢。

domain_ssl

1 个答案:

答案 0 :(得分:0)

我将使用papaja文档中的示例作为示例。

mod1 <- lm(Sepal.Length ~ Sepal.Width, data = iris)
mod2 <- update(mod1, formula = . ~ . + Petal.Length)
mod3 <- update(mod2, formula = . ~ . + Petal.Width)

moi <- list(Baseline = mod1, Length = mod2, Both = mod3)

h_reg <- apa_print(moi, boot_samples = 0)
h_reg_table <- h_reg$table

2)如何删除AIC之类的行

apa_print()返回的表是data.frame,其中包含一些其他信息。因此,您可以像对任何其他表一样对它进行索引和子集化。您可以按名称(请参见下文)或按行号选择行。

# Remove rows
rows_to_remove <- c("$\\mathrm{AIC}$", "$\\mathrm{BIC}$")
h_reg_table <- h_reg_table[!rownames(h_reg_table) %in% rows_to_remove, ]

1)如何添加星号以标记协变量上的sig p值

目前尚无办法突出重要的预测因素(我不喜欢这种做法)。但是这里有一些代码可以让您在事实之后添加突出显示。以下函数将带格式的表格,比较模型的列表和字符符号突出显示为重要的预测变量作为输入。

# Define custom function
highlight_sig_predictors <- function(x, models, symbol) {
  n_coefs <- sapply(models, function(y) length(coef(y)))

  for(i in seq_along(models)) {
    sig_stars <- rep(FALSE, max(n_coefs))
    sig_stars[1:n_coefs[i]] <- apply(confint(models[[i]]), 1, function(y) all(y > 0) || all(y < 0))
    x[1:max(n_coefs), i] <- paste0(x[1:max(n_coefs), i], ifelse(sig_stars, symbol, paste0("\\phantom{", symbol, "}")))
  }

  x
}

现在此功能可用于自定义apa_print()返回的表。

# Add significance symbols to predictors
h_reg_table <- highlight_sig_predictors(h_reg_table, moi, symbol = "*")

# Print table
apa_table(h_reg_table, escape = FALSE, align = c("lrrr"))