Можно ли изменить формат столбца с помощью функции "sprintf"? - PullRequest
0 голосов
/ 30 января 2020

Я работаю с инструментом Rmarkdown, создаю отчет и создаю таблицы с помощью пакета Kable.

Я передаю значения моих результатов в процентном формате с помощью функции "sprintf", и до сих пор все работало нормально. Проблема в том, что у меня есть таблица с полем, которое я не хочу указывать в процентах, однако с помощью функции все значения в таблице преобразуются в процент.

Мой код такой:

library(kableExtra)
matrix1<-function(matriz_deriv)

z12 <- matrix(sprintf("%.2f%%",100*matrix1), 
            nrow=nrow(matrix1), 
            ncol=ncol(matrix1))

colnames(z12) <- c("Month","value")

kable(z12, "latex", caption = "Matrix1", 
            booktabs = T) %>%
kable_styling(latex_options = c("striped", "hold_position"))

код работает нормально, но мне просто нужно применить процент к столбцу «Значения», а не к столбцу «Месяц» и с помощью sprintf Функция процент применяется к полной матрице с указанием месяцев с процентами.

У вас есть идеи, как с этим справиться?

Я пробовал несколько альтернатив, но безуспешно. Я прилагаю изображение результата матрицы с процентами

1 Ответ

1 голос
/ 30 января 2020

Применить sprintf к столбцу, который вы хотите отформатировать:

library(kableExtra)

set.seed(123)
z12 <- matrix(c(1:12, rnorm(12, 0.5, 0.25)), ncol = 2)
colnames(z12) <- c("Month","value")

z12[,2] <- sprintf("%.2f%%", 100*z12[,2])

kable(z12, "html", caption = "Matrix1", 
      booktabs = T) %>%
  kable_styling(latex_options = c("striped", "hold_position"))

...