Форматирование таблицы из apa_list (список) - PullRequest
0 голосов
/ 11 сентября 2018

Я печатаю таблицу в PDF с большим успехом. Стандартная иерархическая регрессия с тремя шагами. Однако у меня два вопроса: 1) как добавить звездочку, чтобы пометить значения sig p на ковариатах, и 2) как удалить строки, такие как AIC и т. Д. На данный момент, я просто открываю PDF в слово для редактирования таблицы, но думал, что у кого-то может быть решение. Благодарю.

H_regression <- apa_print(list(Step1 = model1, 
                               Step2 = model2, 
                               Step3 = model3), 
                          boot_samples = 0)

1 Ответ

0 голосов
/ 11 сентября 2018

Я буду использовать пример из документации 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"))
...