Один из обходных путей - сохранить вывод stargazer в переменной, а затем записать его в файл:

ользую Stargazer, чтобы сообщить о результатах из некоторых моделей, где я использую надежные стандартные ошибки. Процесс их вычисления и последующей подачи моделей в Stargazer удаляет такие данные, как R ^ 2, и поэтому мне нужно добавить их вручную. Однако это вызывает у меня проблемы. Ниже основнойstargazer() позвони, я пытаюсь бежать. После этого и некоторое обсуждение - код, необходимый для генерации данных, поступающих вstargazer() вызов:

stargazer(fit1_robust, fit2_robust,
    keep.stat = c("n", "adj.rsq"), # doesn't actually result in keeping the stats, but including it just to demonstrate such.
    add.lines = list(c("Adjusted $R^2$", fit1_r2, fit2_r2)),
    out = "~/Test.tex"
    )

Когда я вызываю это, я получаю следующую ошибку:

Error in if (nchar(text.matrix[r, c]) > max.length[real.c]) { : 
missing value where TRUE/FALSE needed

Здесь есть несколько интересных аспектов:

Ошибка не возникает, если я опускаю^ и вместо этого просто использовать"Adjusted $R2$"

Ошибка не возникает, если я не используюout аргумент для указания файла .tex для экспорта.

Обращение к одной из этих целей «решает» ошибку, но за счет того, что мой код не выполняет то, что я хочу. Как я могу вручную добавить скорректированный R ^ 2 так, как я это сделал здесь (и, в более общем смысле, добавить заметки, включающие^)?

(Примечание: я также пытался избежать^ характер, заменив его/^, Это дало ошибку. Если я использую двойной выход://^ это предотвращает ошибку, но затем в сгенерированном файле .tex появляется один escape, и это не то, что я хочу.)

Вот остальная часть кода, чтобы получить все объекты, необходимые для вышеуказанногоstargazer() вызов:

library(stargazer)
library(lmtest)
library(sandwich)

#################
# Simulate Data #
#################

N = 100

A = rnorm(N)
B = rnorm(N)
Y = 2*A + B + rnorm(N)
Data = data.frame(Y, A, B)

#####################################
# Fit Models and Find Robust Errors #
#####################################

fit1 = lm(Y~A)
fit2 = lm(Y~A+B)

fit1_robust = coeftest(fit1, vcov = sandwich)
fit2_robust = coeftest(fit2, vcov = sandwich)

fit1_r2 = round(summary(fit1)$adj.r.squared, 4)
fit2_r2 = round(summary(fit2)$adj.r.squared, 4)

Ответы на вопрос(1)

Ваш ответ на вопрос