我正在使用 kableExtra 生成一个 Rmarkdown 表(在 Rstudio 1.2.1335,Windows 10 中)。其中一个单元格最终将其值推到另一行,这弄乱了行间距(见下图)。奇怪的是,如果我用另一个值手动替换矩阵中的单元格值,它有时会修复它,具体取决于替换值。我的代码在下面(我已经尝试过但未能制作一个可重复的示例 - 问题似乎只出现在我的实际数据中)。
est1 <- as.matrix(cbind(round(apply(sexClass2,2,mean),0),
round(apply(sexClass2,2,mlv,method="lientz",bw=0.5),0),
round(t(apply(sexClass2,2,hdi)),0)))
#est1[1,4] <- 38
load("FR_Coll_20200815_20201115_weekly_theta_df_Constrained.RData")
est2 <- cbind(round(apply(sexClass2,2,mean),0),
round(apply(sexClass2,2,mlv,method="lientz",bw=0.5),0),
round(t(apply(sexClass2,2,hdi)),0))
load("FR_Coll_20200815_20201115_weekly_theta.RData")
est3 <- cbind(round(apply(sexClass2,2,mean),0),
round(apply(sexClass2,2,mlv,method="lientz",bw=0.5),0),
round(t(apply(sexClass2,2,hdi)),0))
est <- rbind(est1,est2,est3)
cap <- "Abundance estimates for elk from the FR camera grid. Estimates reflect the subtraction of any animals known to have died during the study period."
colnames(est) <- c("Mean","Mode","LCrL","UCrL")
rownames(est) <- rep(c("Cows","Bulls","Calves","Cows + Calves", "Total"),times=3)
estFR <- est %>%
kable(booktabs = TRUE, caption=cap, linesep = "",align=rep('r',4),escape=FALSE) %>%
kable_styling(latex_options = c("hold_position"),full_width = FALSE) %>%
column_spec(1, width = "6cm")%>%
column_spec(2:5, width = "2cm") %>%
pack_rows("Group-specific detection parameters", 1,5) %>%
pack_rows("Group-specific detection parameters, and IDs constrained", 6,10)%>%
pack_rows("Constant detection parameters", 11,15)
这将产生下表:
如果我取消注释该行est1[1,4] <- 38
,那么问题就会消失。如果我将值替换为 1 或 29 或 41 等,问题也会消失。但是,如果我用 39 或 40 替换该值,那么单元格就会出现不需要的额外行。
est1
最后,如果我使用完全相同的值生成该矩阵,那么就没有问题。但是我也加载并计算了 and 中的值est2
,est3
那里没有问题。
我有三个相同构造的表(完全相同的代码,只更改输入数据文件)。在一个中,我看到了上述行为,仅针对那个单元格。在另一组中,我看到了第一组中所有右列单元格的行为(但不是在最后两组中),而在第三组中,根本没有问题。
我尝试了各种其他技巧,例如est1 <- est1*1
,无济于事。奇怪的是est1 <- est1/2
,即使单元格值有更多字符(这应该使它更有可能换行),间距问题也会消失。并est1/2*2
没有工作。
任何人都可以为这种看似非常奇怪的行为提供解释或解决方案吗?