r xtable и таблица частот, печать по строкам

#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 …}