簡體   English   中英

用垂直線分隔列並在 Xtable (RMarkdown) 中添加腳注

[英]Seperating columns with a vertical line and adding a footnote in an Xtable (RMarkdown)

我想知道是否有人知道如何在 Xtable 下添加腳注,以及如何用垂直線分隔每一列以使該表格看起來更整潔。

我希望我的腳注是“這些是 ADF 測試結果”

我在下面復制了我的代碼和數據框

{r table_3, echo = FALSE, warning = FALSE, message = FALSE, results = 'asis'}
library(tidyverse)
library(tidyselect)
library(xtable)
library(readxl)
library(knitr)

# Create Dataframe


variables <- c("Argentina Bond Flows", "Argentina Equity Flows", "Chile Bond Flows", "Chile Equity Flows", "Mexico Bond Flows",
               "Mexico Equity Flows", "Indonesia Bond Flows", "Indonesia Equity Flows", "Korea Bond Flows", "Korea Equity Flows",
               "Philippines Bond Flows", "Philippines Equity Flows", "Thailand Bond Flows", "Thailand Equity Flows", 
               "South Africa Bond Flows", "South Africa Equity Flows","United States S&P 500", "United States M1")


adf <- c("-4.3557","-6.4865","-3.4893","-3.3485","-2.6294","-5.511","-2.9238","-6.0305","-9.7081","-2.0444","-4.7619","-5.6108","-4.6314","-4.6218","-4.3337","-3.7213","2.6471"," 4.0174")
pp <- c("-6.9685","-9.3864","-6.7449","-5.6533","-6.0265","-9.4065","-6.531","-7.5043","-21.0764","-3.5716","-8.3505","-6.5574 ","-10.3266","-7.445","-8.9639","-6.3464","-11.1298","4.0512")

variables2 <- c("Argentina M1", "Argentina Equity Index", "Chile M1", "Chile Equity Index", "Mexico M1",
                "Mexico Equity Index", "Indonesia M1", "Indonesia Equity Index", "Korea M1", "Korea Equity Index",
                "Philippines M1", "Philippines Equity Index", "Thailand M1", "Thailand Equity Index", 
                "South Africa M1", "South Africa Equity Index","", "")


adf2 <- c("-6.9593","6.1785","3.6245","-2.2697","3.2417","2.4172","2.4237","2.0484","3.8211","-6.938","-6.9593","-7.7315","-6.9593","6.1785","-8.0415 ","2.5385","","")
pp2 <- c("-13.7725","4.8728","-11.0177","-9.3776","-14.3688 ","-2.2334","-13.1095","-8.8171","-11.1806","-9.8397","-13.7725","-9.4015","-2.6801","-11.8756","-10.681"," -9.6241","","")


unit_table <- data.frame(variables, adf, pp,variables2, adf2,pp2)
colnames(unit_table) <- c("Country Variable", "ADF", "PP","Country Variable", "ADF", "PP")

# Create a table using XTable

table <- xtable(unit_table, caption = "Unit Root Test Results \\label{Table3}",
                # tabular.environment = "longtable",
                floating = TRUE,
                table.placement = 'H',
                include.rownames = FALSE,
                # scalebox = 0.3,
                comment = FALSE,
                caption.placement = 'top'
                 )
bold <- function(x) {paste('{\\textbf{',x,'}}', sep ='')}


print(table, include.rownames = FALSE, sanitize.colnames.function=bold, comment = FALSE)

另外,我如何將表格中的某些單詞加粗。 例如,如果我想加粗“韓國債券流動”,我該怎么做?

蒂亞!

我不xtable使用xtable ,但有一些可能有用的建議。

首先,要添加腳注,您可以包含以下內容:

comment <- list(pos = list(0))
comment$pos[[1]] <- c(nrow(unit_table))
comment$command <- c(paste("\\hline\n", 
                           "These are ADF test results.\n", 
                           sep = ""))

然后在print表格時,添加add.to.row = comment, hline.after = c(-1, 0) 有關這方面的更多詳細信息,請參閱類似問題

要使用垂直線分隔列,請使用align並提供帶有對齊方式的模式(例如左或右)以及您想要分割的位置。 例如,當您調用xtable函數時,添加選項align = "ll|l|l|l|l|l"

加粗表格中的特定單元格,請為這些表格元素添加代碼,例如 BOLD 代表Korea Bond Flows

unit_table[9, "Country Variable"] <- paste0("BOLD", unit_table[9, "Country Variable"])

並使用一個函數來檢測這個 BOLD 代碼:

bold.function <- function(x) gsub('BOLD(.*)', paste('\\\\textbf{\\1','}'),x)

並添加sanitize.text.function = bold.functionprint了的xtable

這是似乎有效的整個 RMarkdown。 值得注意的是,我在United States S&P 500 stringsAsFactors = FALSE了您的&並在創建數據框時添加了stringsAsFactors = FALSE

---
title: "Test"
output: pdf_document
classoption: landscape
---

```{r, results="asis", echo = FALSE}

library(xtable)

variables <- c("Argentina Bond Flows", "Argentina Equity Flows", "Chile Bond Flows", "Chile Equity Flows", "Mexico Bond Flows",
               "Mexico Equity Flows", "Indonesia Bond Flows", "Indonesia Equity Flows", "Korea Bond Flows", "Korea Equity Flows",
               "Philippines Bond Flows", "Philippines Equity Flows", "Thailand Bond Flows", "Thailand Equity Flows", 
               "South Africa Bond Flows", "South Africa Equity Flows","United States S\\&P 500", "United States M1")

adf <- c("-4.3557","-6.4865","-3.4893","-3.3485","-2.6294","-5.511","-2.9238","-6.0305","-9.7081","-2.0444","-4.7619","-5.6108","-4.6314","-4.6218","-4.3337","-3.7213","2.6471"," 4.0174")
pp <- c("-6.9685","-9.3864","-6.7449","-5.6533","-6.0265","-9.4065","-6.531","-7.5043","-21.0764","-3.5716","-8.3505","-6.5574 ","-10.3266","-7.445","-8.9639","-6.3464","-11.1298","4.0512")

variables2 <- c("Argentina M1", "Argentina Equity Index", "Chile M1", "Chile Equity Index", "Mexico M1",
                "Mexico Equity Index", "Indonesia M1", "Indonesia Equity Index", "Korea M1", "Korea Equity Index",
                "Philippines M1", "Philippines Equity Index", "Thailand M1", "Thailand Equity Index", 
                "South Africa M1", "South Africa Equity Index","", "")

adf2 <- c("-6.9593","6.1785","3.6245","-2.2697","3.2417","2.4172","2.4237","2.0484","3.8211","-6.938","-6.9593","-7.7315","-6.9593","6.1785","-8.0415 ","2.5385","","")
pp2 <- c("-13.7725","4.8728","-11.0177","-9.3776","-14.3688 ","-2.2334","-13.1095","-8.8171","-11.1806","-9.8397","-13.7725","-9.4015","-2.6801","-11.8756","-10.681"," -9.6241","","")

unit_table <- data.frame(variables, adf, pp,variables2, adf2,pp2, stringsAsFactors = FALSE)
colnames(unit_table) <- c("Country Variable", "ADF", "PP","Country Variable", "ADF", "PP")

# Create a table using XTable

unit_table[9, "Country Variable"] <- paste0("BOLD", unit_table[9, "Country Variable"])

table <- xtable(unit_table, 
                caption = "Unit Root Test Results \\label{Table3}",
                # tabular.environment = "longtable",
                floating = TRUE,
                table.placement = 'H',
                include.rownames = FALSE,
                # scalebox = 0.3,
                comment = FALSE,
                caption.placement = 'top',
                align = "ll|l|l|l|l|l"
)

# Additional code added

bold.function <- function(x) gsub('BOLD(.*)', paste('\\\\textbf{\\1','}'),x)

comment <- list(pos = list(0))
comment$pos[[1]] <- c(nrow(unit_table))
comment$command <- c(paste("\\hline\n", 
                           "These are ADF test results.\n", 
                           sep = ""))

print(table, add.to.row = comment, hline.after = c(-1, 0), sanitize.text.function = bold.function)
```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM