【问题标题】:PDF Rmarkdown - Improper Alignment in Multi-line CellsPDF Rmarkdown - 多行单元格中的不正确对齐
【发布时间】:2020-09-27 01:50:55
【问题描述】:

由于某种原因,以下代码生成了一个表格,其中最后一列交替对齐(左、右、中、左、...)。我尝试使用 \\ 而不是 \n 作为换行符,但这只会在每个功能之间产生一个尴尬而大的空间。如果最后一列全部居中,我会更喜欢 - 有人知道为什么会发生这种情况吗?

library(knitr)
library(kableExtra)
df <- data.frame(Metric = c("ECG (mV)", "EDA ($\\mu$s)","EMG (mV)", "Temp (C$^\\circ$)","Resp ($\\%$)", 
                            "BVP", "EDA ($\\mu$s)", "Temp (C$^\\circ$)"), 
                 Description = linebreak(c("Electrocardiography", "Electrodermal Activity", "Electromyography", "Body Temperature", "Respiration",
                                           "Blood Volume Pulse", "Electrodermal Activity", "Skin Temperature")), 
                 Features = linebreak(c("Mean \n Std Deviation \n Peaks", "Mean \n Std Deviation", "Mean \n Std Deviation", 
                                        "Mean \n Std Deviation", "Mean \n Std Deviation \n Peaks", 
                                        "Mean \n Std Deviation \n Heart Rate Variability", "Mean \n Std Deviation", 
                                        "Mean \n Std Deviation")))
kable(df, format = "latex", escape = F, align="c") %>%
  group_rows(index = c("RespiBAN Chest Sensor" = 5, "Empatica E4 Wrist Sensor" = 3)) %>%
  kable_styling(bootstrap_options = c("hover"))

table output

【问题讨论】:

    标签: pdf alignment r-markdown knitr kable


    【解决方案1】:

    align="c" 添加到linebreak 应该可以工作

    library(knitr)
    library(kableExtra)
    df <- data.frame(Metric = c("ECG (mV)", "EDA ($\\mu$s)","EMG (mV)", "Temp (C$^\\circ$)","Resp ($\\%$)", 
                                "BVP", "EDA ($\\mu$s)", "Temp (C$^\\circ$)"), 
                     Description = linebreak(c("Electrocardiography", "Electrodermal Activity", "Electromyography", "Body Temperature", "Respiration",
                                               "Blood Volume Pulse", "Electrodermal Activity", "Skin Temperature")), 
                     Features = linebreak(c("Mean \n Std Deviation \n Peaks", "Mean \n Std Deviation", "Mean \n Std Deviation", 
                                            "Mean \n Std Deviation", "Mean \n Std Deviation \n Peaks", 
                                            "Mean \n Std Deviation \n Heart Rate Variability", "Mean \n Std Deviation", 
                                            "Mean \n Std Deviation"), align = "c")) #This parameter
    

    【讨论】:

      【解决方案2】:
      collapse_rows_dt <- data.frame(Metric = c(rep("ECG (mV)", 3), rep("EDA ($\\mu$s)", 2), rep("EMG (mV)", 2), rep("Temp (C$^\\circ$)", 2),
                                            rep("Resp ($\\%$)", 3), rep("BVP", 3), rep("EDA ($\\mu$s)", 2), rep("Temp (C$^\\circ$)", 2)),
                                     Description = linebreak(c(rep("Electrocardiography", 3), 
                                                               rep("Electrodermal Activity", 2), 
                                                               rep("Electromyography", 2),
                                                               rep("Body Temperature", 2), 
                                                               rep("Respiration", 3), 
                                                               rep("Blood Volume Pulse", 3), 
                                                               rep("Electrodermal Activity", 2), 
                                                               rep("Skin Temperature", 2))),
                                     Features = linebreak(c("Mean", "Std Deviation", "Peaks", 
                                              "Mean" , "Std Deviation", 
                                              "Mean", "Std Deviation", 
                                              "Mean", "Std Deviation", 
                                              "Mean",  "Std Deviation", "Peaks", 
                                              "Mean", "Std Deviation", "Heart Rate Variability", 
                                              "Mean", "Std Deviation", 
                                              "Mean", "Std Deviation")))
      kable(collapse_rows_dt, escape=F, booktabs = T, align = "llc") %>%
        group_rows(index = c("RespiBAN Chest Sensor" = 12, "Empatica E4 Wrist Sensor" = 7)) %>%
        column_spec(1, bold=T) %>%
        collapse_rows(columns = 1:2, latex_hline = "major", valign = "middle")
      

      绝对不是一个理想的解决方案,但它完成了工作

      centered table

      【讨论】:

        猜你喜欢
        • 2019-04-24
        • 2018-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 2017-01-27
        相关资源
        最近更新 更多