使用kableExtra设置跨列表头遇R报错,原正常表格也异常求助
问题解决:kableExtra跨列表头添加错误修复
错误原因拆解
- 字符串拼接错误:R中
^是幂运算、*是乘法运算,不能用来拼接包含®的字符串,直接把®嵌入字符串或用paste()拼接才是正确方式。 - 命名向量语法错误:创建跨列表头的命名向量时,错误将等号放在未闭合的字符串外,导致R无法识别语法结构。
- 连锁影响:table3的代码报错中断了脚本执行,原本正常的table4因脚本未执行到对应部分出现错误假象,实际table4本身无问题。
修正后的完整代码
#### Set GLOBAL options #### options(knitr.table.format = "html") # 修正表头文本与命名向量 main_icc_title <- c("Table 3: Intraclass Correlation coefficients between AVA 3.2® and CytoCamTools®." = 3) main_icc_title_spec <- c(0,3) # 构建HTML表格(同时修正kable_paper的拼写错误:full_widt → full_width) table_3 <- main_icc_table %>% kbl(col.names = c("Variable", "ICC [95% CI]", "Agreement"), align = "lll", row.names = FALSE) %>% kable_styling("striped") %>% column_spec(1, bold = TRUE, width = "10em") %>% column_spec(2, width = "10em") %>% column_spec(3, width = "10em") %>% kable_paper("hover", full_width = F, position = "center") %>% add_header_above(main_icc_title, main_icc_title_spec) %>% footnote(general_title = "", general = "Intraclass Correlations Coefficients were calculated for each variable using a two-way mixed effects model for single rater and absolute agreement. Confidence intervals and interpretation of agreement are given for each variable. ICC: intraclass correlation coeficient, CI: confidence interval.")
额外说明
- 若需动态拼接包含特殊符号的字符串,可使用
paste():title_text <- paste("Table 3: Intraclass Correlation coefficients between AVA 3.2", "®", " and CytoCamTools ", "®", ".", sep = "") main_icc_title <- c(title_text = 3) - 修正table3的错误后,重新运行整个脚本,table4会恢复正常执行。
内容的提问来源于stack exchange,提问作者jord seegers
相关产品推荐
相关产品推荐

