在 tibble 变量名中使用特殊字符,例如上标

using special characters such as superscript in tibble variable names

tibble 可以接受带有一些特殊字符的变量名。这是一个简单的例子:

library(tibble)
df<-tibble(
  `Age, years` = c(25, 26, 27, 29), 
  `BMI, kg/m^2` = c(21, 23, 24, 25)
)

这对于生成表格和图表很方便。我无法像 BMI, kg/m^2 那样直接使用真正的上标。我可以在 ggplot 中添加标签 expression(paste("BMI, kg/m"^"2"))quote("BMI, kg/m"^"2") 以在图表中显示上标。感觉直接加在变量名上,图和表都更方便。这可能吗?谢谢

在符号名和列名中包含特殊字符通常不是一个好主意。而是从数据操作与表示的角度来思考。在前者中,您可以使用 agebmi,然后您可以完全灵活地格式化演示文稿中的标签。

特殊字符和 "true superscript" 并不简单,完全取决于您使用的媒体。上标 2 (²) 在 HTML、pdf 和绘图中可能会或可能不会正确显示,并且完全取决于使用的编码 (example)。

如果你需要输出一个上标2,例如一个图,您可以使用 plot(1,1, ylab=expression(kg/m^2)),但需要采取一些步骤来包含空格。如果您需要将标签和单位分解为例如两行?您不想更改数据结构的命名以反映图中的标签。

HTML?使用 HTML 个实体 (&sup2;) 可能更安全,但您可能需要对解析输出的任何内容进行转义。同样,将标签与数据结构分开。

PDF 通过 LaTeX,$\frac{kg}{m^2}$。将表示与数据结构中的变量名分开。

将标签直接编码在变量名中通常不是一个好主意。如果还不确定,请考虑您确实将列命名为 "BMI, kg/m"^"2",然后在需要时使用 quote 通过。在整个数据分析过程中,您必须键入该名称以引用该列。需要格式化位数?

df$`"BMI, kg/m"^"2"` <- format(df$`"BMI, kg/m"^"2"`, digits=1)
etc. etc. etc.

然后,在你完成报告后,你的老板让你以单行方式展示单位,即 kg•m^-2