2015-08-04 21 views
5

Tôi đang cố gắng xuất bản một bảng với 1000 dấu tách và tôi không có bất kỳ may mắn nào với nó. Tôi theo liên kết ở đây: Set global thousand separator on knitr nhưng không có nhiều thành công.R Bảng Markdown 1000 dấu phân cách

bộ dữ liệu mẫu của tôi là ở đây: https://goo.gl/G7sZhr

Mã RMarkdown là ở đây:

--- 
title: "Table Example" 
author: "Krishnan Viswanathan" 
date: "August 4, 2015" 
output: html_document 
--- 

Load dữ liệu

{r, results='asis', message = FALSE, tidy=TRUE} load("i75_from_flow.RData") library(data.table)

{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE} i75_from_flow <- i75_from_flow[order(-Tons),] knitr::kable(i75_from_flow)

Tuy nhiên, khi tôi bao gồm đoạn mã này (knit_hook $ set) trong tài liệu RMarkdown, tôi gặp lỗi.

```{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE} 
i75_from_flow <- i75_from_flow[order(-Tons),] 
knit_hooks$set(inline = function(x) { 
prettyNum(x, big.mark=",") 
}) 
knitr::kable(i75_from_flow) 
``` 

Lỗi:

# object knit_hooks not found. 

Bất kỳ hiểu biết sâu sắc về những gì tôi đang làm sai và làm thế nào để sửa lỗi này được nhiều đánh giá cao.

Cảm ơn,

Krishnan

Trả lời

3

gì về việc sử dụng pander với loạt các tùy chọn để tinh chỉnh của bạn markdown table:

> pander::pander(i75_from_flow, big.mark = ',') 

---------------------------- 
ORIGFIPS TERMFIPS Tons 
---------- ---------- ------ 
    12,023  12,117 5,891 

    12,119  12,105 4,959 

    12,001  12,057 3,585 

    12,001  12,113 3,083 

    12,047  12,047 1,517 
---------------------------- 
+0

Cảm ơn thông tin chi tiết. Điều này làm việc. – Krishnan

2

Lý do mà các knit_hooks đối tượng không được tìm thấy là bạn nên cần tải gói knitr hoặc sử dụng tiền tố knitr:: để đặt các tùy chọn knit_hooks. Ví dụ:

knitr::knit_hooks$set(inline = function(x) { 
prettyNum(x, big.mark=",") 
}) 
2

Cách đơn giản nhất là sử dụng các đối số định dạng của kable() chức năng riêng của mình, nơi bạn có thể xác định dấu ấn số lượng lớn như vậy:

kable(df, format.args = list(big.mark = ",")) 

Vì vậy, ví dụ của bạn sẽ trông như thế:

```{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE} 

i75_from_flow <- i75_from_flow[order(-Tons),] 
knitr::kable(i75_from_flow, format.args = list(big.mark = ",")) 
``` 

mà không cần móc đan.

Các vấn đề liên quan