Я пытаюсь научиться создавать красивые таблицы, используя пакет huxtable
.Это кривая обучения, но пока я действительно впечатлен.Однако я столкнулся с несколькими проблемами, которые, похоже, не могу решить.
Во-первых, я пытаюсь отформатировать числа так, чтобы был разделитель запятой для позиции тысяч (используя функцию mutate_at
изпакет dplyr
и prettyNum
. Он работает хорошо, за исключением того, что для столбцов с числовым классом обнуляются внутренние нули (например, 1001 становится 1,1 вместо желаемого 1,001). Если класс col является целым числом, тожелаемый вывод получен. Кроме того, правильный вывод получается, если входные данные являются кадром данных, а не huxtable, независимо от того, является ли столбец числовым или целочисленным.
Во-вторых, когда я добавляю другое форматирование таблицы (в частности, заголовок), кажется, что заголовок не переносится, когда я записываю таблицу в файл Word. Кроме того, создается примечание:
Note: zip::zip() is deprecated, please use zip::zipr() instead
НижеПример кода, который, я думаю, иллюстрирует проблему.
Мои вопросы:
1) Почему функция mutate выдает странный результат для nuстолбец метрики в huxtables, но не во фреймах данных, и как я могу убедиться, что он работает?Конечно, я мог бы выполнить форматирование чисел перед преобразованием кадра данных в таблицу, но я все же хотел бы знать, что здесь происходит.
2) Почему форматирование таблицы не сохраняется в выходных данныхфайл?
3) Что означает примечание об использовании zipr
, и может ли это привести к тому, что ссылки на него будут также нести ответственность за сбой экспорта свойств таблицы?
Спасибо, Гленн
library(dplyr)
library(flextable)
library(huxtable)
test=data.frame(var1=1918:1925,var2=c(9009,1000:1006),var3 = 1100:1107)
str(test)
HUX <- hux(test)
number_format(HUX)
number_format(HUX[,2]) <- 0
# works as expected on data frame
mutate_at(test,-1,.funs=list(~prettyNum(.,big.mark=",")))
# does not work as expected on huxtable, for var2 of class numeric
mutate_at(HUX,-1,.funs=list(~prettyNum(., big.mark=",")))
# add caption, borders, and colnames
set_caption(HUX,"Example table") %>%
set_caption_pos("topleft") %>%
set_top_border(1,,1) %>%
set_bottom_border(final(1), , 1) %>%
add_colnames()
# write out the table (this produces a note about zipr)
quick_docx(HUX)