#r #row #xtable
#r #строка #xtable
Вопрос:
xtable
на данный момент не знает, как распечатать таблицы частот из base::table
. Что я делаю сейчас, так это конвертирую это во фрейм данных, а затем меняю заголовки, используя colnames
по мере необходимости:
dset <- data.frame(rpois(100, 1))
dset.print <- as.data.frame(table(dset))
colnames(dset.print) <- c("smth", "freq")
xtable(dset.print)
Теперь я хотел бы напечатать эту таблицу по строкам (как фактический результат table(dset)
с заголовками спереди). Я пробовал что-то вроде этого
dset.print <- t(as.matrix(table(dset)))
dset.print <- cbind(c("smth", "freq"), as.data.frame(dset.print))
Но это не совсем дало то, что я хотел.
Комментарии:
1. Не могли бы вы рассмотреть возможность использования kable() или pander()? Вывод из pander() выглядит довольно неплохо в HTML, PDF и MS Word. Для этого не требуется изменять «тип» печати, как того требует xtable в моем ответе ниже. Отсутствие названий столбцов действительно выглядит немного забавно в Word.
Ответ №1:
Это выглядит довольно неплохо, если вы вяжете в формате PDF. Если вы вяжете в MS Word или HTML, укажите печать (dset.xtab, type=»html») Эстетика этих таблиц может показаться вам не такой приятной.
```{r xtable, echo=FALSE, message=FALSE, warning=FALSE, results='asis'}
library(xtable)
dset <- data.frame(rpois(100, 1))
dset.print <- as.data.frame(table(dset))
dset.print <- rbind.data.frame(as.character(dset.print[,1]), dset.print[,2])
names(dset.print) <- rep('', ncol(dset.print))
rownames(dset.print) <- c('smth', 'freq')
dset.xtab <- xtable(dset.print)
print(dset.xtab)
```
Комментарии:
1. Приоритет — вывод в формате pdf, так что все в порядке. На самом деле, я обнаружил, что могу напрямую транспонировать приведенный выше фрейм данных (все данные просто преобразуются в char), если целью является просто печать таблицы. Спасибо. Кстати, не должно быть необходимости принудительно
dset.print[ ,1]
2. На самом деле, нужно принудительно
dset.print[, 1]
. Я не ожидал такого поведения!3. Я полагаю, что dset.print[, 1] содержит метки ячеек … вы их называете
smth
, верно? Они начинаются как коэффициенты. Если вы не будете их принудительно использовать, вы действительно можете запутаться, потому что будут возвращены номера коэффициентов. В этом случае небольшие коэффициенты в {1,2,3 …} и ячейки из распределения Пуассона равны {0,1,2 …}