Вопрос

Я выводю фрейм данных в html через xtable.Я хочу добавить запятые к числам в паре столбцов таблицы.Я подумал, что прежде чем делать свой собственный взлом с вставкой, я бы проверил, есть ли встроенный способ сделать это.

Это было полезно?

Решение

Возможно, вы захотите рассмотреть возможность преобразования столбца с помощью formatC

> formatC(1:10 * 100000, format="d", big.mark=",")
 [1] "100,000"   "200,000"   "300,000"   "400,000"   "500,000"   "600,000"  
 [7] "700,000"   "800,000"   "900,000"   "1,000,000"

Другие советы

Огромное спасибо Джонатану Чангу за его ответ. formatC похоже, это чрезвычайно полезная функция.Это вдохновило меня прочитать документацию к нему, в которой я нашел prettyNum, что оказалось довольно элегантным решением аналогичной проблемы, с которой я столкнулся.Вот минимальный жизнеспособный пример того, что я сделал, чтобы добавить запятые к числам во фрейме данных с именем enrollment.summary.

xtable(prettyNum(enrollment.summary,big.mark=","))

Вы также можете попробовать использовать функциональный аргумент 'format.args'

  ## Demonstration of additional formatC() arguments.
  print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ","))

отсюда

https://cran.rstudio.com/web/packages/xtable/xtable.pdf

Вот поздний ответ, но вы также могли бы использовать scales::comma_format следующим образом:

library(scales)
values <- c(1000000.789, 8888.23)
comma_format(digits = 12)(values)
## [1] "1,000,000.789" "8,888.230"

Только для целых значений вы можете просто использовать запятую:

int_vals <- c(1234, 5678)
comma(int_vals)
## [1] "1,234" "5,678"

чтобы отформатировать некоторые сводки из dplyr, вот шаблонный код:

df %>%
    summarise(mu=mean(big_values),
              min=min(big_values),
              max=max(big_values)) %>%
    mutate_each(funs(prettyNum(., big.mark=",")))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top