имена строк xtable с использованием R

Я использую R и LaTeX и пакет xtable для таблиц. Я немного озадачен, почему указанные имена строк не отображаются в моих таблицах. Вот пример:

\documentclass[a4paper, 11pt]{article}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\begin{document}
\SweaveOpts{concordance=TRUE}
<<results=tex, fig=FALSE, echo=FALSE>>=
library(xtable)
table.matrix <- matrix(numeric(0), ncol = 5, nrow = 12)
colnames(table.matrix) <- c("$m_t$", "$p_t$", "$R^b_t$", "$R^m_t$", "$y^r_t$")
rownames(table.matrix) <- c("$m_{t-1}$", " ", "$p_{t-1}$", " ", "$R^b_{t-1}$", " ", "$R^m_{t-1}$", " ", "$y^r_t$", " ", "$c$", " ")

tex.table <- xtable(table.matrix)
align(tex.table) <- "c||ccccc"
print(tex.table, include.rownames = TRUE, hline.after = c(-1, 0, seq(0, nrow(table.matrix), by = 2)), sanitize.text.function = function(x){x})
@
\end{document}

Мне это кажется довольно простым. По сути, у меня есть оценка простой модели VAR, и в строках мне нужны переменные с индексом (t-1), и каждая вторая строка должна иметь p-значения (сейчас они пусты в векторе имени ). Есть идеи?

РЕДАКТИРОВАТЬ: Как указано nograpes, проблема в том, что некоторые имена строк дублируются. Кто-нибудь знает, как обойти это (без использования первого столбца в качестве столбца имени)? Я просто хочу, чтобы строки с четными номерами были пустыми, а также какое-то указание на то, что они являются p-значениями.


person hejseb    schedule 20.02.2013    source источник


Ответы (1)


Попробуйте запустить только код R, и вы получите предупреждение о том, почему имена строк не отображаются:

library(xtable)
table.matrix <- matrix(numeric(0), ncol = 5, nrow = 12)
colnames(table.matrix) <- c("$m_t$", "$p_t$", "$R^b_t$", "$R^m_t$", "$y^r_t$")
rownames(table.matrix) <- c("$m_{t-1}$", " ", "$p_{t-1}$", " ", "$R^b_{t-1}$", " ", "$R^m_{t-1}$", " ", "$y^r_t$", " ", "$c$", " ")

xtable(table.matrix)
# Warning message:
# In data.row.names(row.names, rowsi, i) :
#  some row.names duplicated: 4,6,8,10,12 --> row.names NOT used

Таким образом, вы не можете дублировать rownames в R. Вы можете решить эту проблему, сделав имя «столбец» вместо использования rownames.

person nograpes    schedule 20.02.2013
comment
Хорошо подмечено. Я пытался использовать имена строк (table.matrix) ‹- c ($ m_ {t-1} $, test, $ p_ {t-1} $, test2, $ R ^ b_ {t-1} $, test3, $ R ^m_{t-1}$, test4, $y^r_t$, test5, $c$, test6), что сработало. Так что, кажется, нет повторяющихся имен строк. Могу ли я заставить его игнорировать это как-то? - person hejseb; 21.02.2013
comment
Нет, я сомневаюсь. Имена строк должны быть уникальными, поскольку их можно использовать для индексации фрейма данных (или матрицы). - person nograpes; 21.02.2013