PDF Rmarkdown - 多行单元格对齐不当
PDF Rmarkdown - Improper Alignment in Multi-line Cells
出于某种原因,以下代码生成了一个 table,其中最后一列交替对齐(左、右、居中、左……)。我试过使用 \\ 作为换行符而不是 \n 但这只会在每个功能之间产生一个笨拙且大的 space 。如果最后一列全部居中,我更愿意 - 有人知道为什么会这样吗?
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
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
将 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
出于某种原因,以下代码生成了一个 table,其中最后一列交替对齐(左、右、居中、左……)。我试过使用 \\ 作为换行符而不是 \n 但这只会在每个功能之间产生一个笨拙且大的 space 。如果最后一列全部居中,我更愿意 - 有人知道为什么会这样吗?
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
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
将 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