如何在grid.table列标题的L[i-1]与L[i]间添加逗号?
解决grid.table列标题添加逗号不显示的问题
问题核心:设置
parse=TRUE后,列名会被当作R表达式解析,之前用paste(L[i-1], L[i])时,逗号是paste的参数分隔符,不会被识别为要显示的文本内容,所以看不到逗号。两种可行解决方案:
方案一:直接用表达式语法定义列名
# 用expression直接构建带逗号的标题表达式 colnames(tablasolucion1) <- c( expression(L[i-1] ~ "," ~ L[i]), expression(Aspirantes ~ (n[i])), expression(Amplitud ~ (c[i])), expression(Densidad ~ (d[i])) ) tt <- ttheme_default(colhead=list(fg_params = list(parse=TRUE))) grid.newpage() grid.table(tablasolucion1, rows = NULL, theme=tt)
方案二:用glue生成可解析的表达式字符串
colnames(tablasolucion1) <- lapply( list( "L[i-1] ~ ',' ~ L[i]", "Aspirantes ~ (n[i])", "Amplitud ~ (c[i])", "Densidad ~ (d[i])" ), glue ) tt <- ttheme_default(colhead=list(fg_params = list(parse=TRUE))) grid.newpage() grid.table(tablasolucion1, rows = NULL, theme=tt)
- 原理说明:
~ "," ~在表达式语法中代表将逗号作为文本元素插入,parse=TRUE会正确解析这个结构,最终显示出L[i-1], L[i]的效果。而之前的paste写法中,逗号仅作为函数参数分隔符存在,不会被解析为显示文本。
内容的提问来源于stack exchange,提问作者Amelia
相关产品推荐
相关产品推荐

