R DT包datatable设置rownames=FALSE移除行号后超链接格式丢失
R语言DT包关闭行号后HTML格式失效解决方案
问题原因
当你设置rownames = FALSE时,DT表格的列索引会发生偏移:默认带行号时,行号会作为表格的第1列,你原本的escape = c(1,2,3)是指定转义前3列(行号、school、mascot),剩下的website、School_colors列不转义,所以HTML能正常渲染。关闭行号后,行号列消失,原本的data.frame第1列(school)变成了表格的第1列,此时escape = c(1,2,3)就会把website列也加入转义列表,导致HTML标签被直接展示为文本。
解决方案
方案1:调整转义列的索引
关闭行号后,只需要转义前2列即可,修改代码为:
datatable(df, rownames = FALSE, escape = c(1,2))
方案2:用列名指定转义列(更稳妥,不受行号设置影响)
直接传入需要转义的列名,彻底避免索引偏移问题:
# 无论是否开启行号都可以正常生效 datatable(df, rownames = FALSE, escape = c("school", "mascot"))
方案3:全局关闭转义(适合全表多列含HTML内容的场景)
如果你的表格多列都包含需要渲染的HTML内容,可以直接关闭所有列的转义:
datatable(df, rownames = FALSE, escape = FALSE)
内容的提问来源于stack exchange,提问作者neuron
相关产品推荐
相关产品推荐

