Superscript in character string


I am trying to create a chatacter string '6th EP' with 'th' as a superscript, any advice?

Many thanks,


You need to use the ^ operator before the superscript. I presume you want to use this character string in a plot or Markdown so here's an example where the label of the X-axis contains a superscript.

plot(rnorm(10), xlab = expression(paste("6"^"th", " EP")))

Created on 2020-05-04 by the reprex package (v0.3.0)

OK, so you are trying to name your data frame's variables. I don't think such characters are allowed in data frame column names (although I could be wrong).

The proper approach to your situation (in my not so gentle opinion) is not to name your data frame with a superscript, but to set the column name when you write your table.

In other words, avoid pre-processing your data into your output as much as possible.

The new gt package might be of interest (I've not tried using it yet, but from what I have read, it supports this approach). huxtable, and pixiedust are options as well (disclosure, I'm the author of pixiedust)

To approach this in pixiedust, I would try (untested code)

dust(SEATS) %>%
  sprinkle_colnames(ep6 = "6^{th} EP", 
                    ep7 = "7^th EP") %>%

Is it possible that the names of columns of dataframe have a supercript?

I'm not aware of any meaningful or generalized way of doing this.

How do you suggest I should convert latex to png? Thank you!

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

You mean you want to use this in a variable name? That's not really advisable.

I am just creating a dataframe. Shall I use c(expression(paste("6"^"th", " EP"))) ?

Sorry, but I still don't follow. Could you please provide a more detailed explanation?

I am creating a dataframe which I want to use for the creation of png table.

This is my code.

SEATS<- data.frame(matrix(ncol = 3, nrow = 10))
rownames(SEATS) <- c("European People's Party group (EPP)", 
                     "Progressive Alliance of Socialists and Democrats (S&D)",
                     "European Conservatives and Reformists (ECR)",
                     "Group of the Alliance of Liberals and Democrats for Europe (ALDE)",
                     "European United Left/Nordic Green Left (GUE/NGL)",
                     "The Greens/European Free Alliance (Greens/EFA)",
                     "Europe of Freedom and Direct Democracy (EFDD)",
                     "Europe of Nations and Freedom (ENF)",
                     "Union for Europe of the Nations (UEN)",
                     "Independence/Democracy (IND/DEM)")

colnames(SEATS) <-c("6th EP","7th EP","8th EP")

SEATS[1,] <- c(288,273,216)
SEATS[2,] <- c(218,195,185)
SEATS[3,] <- c(0,57,77)
SEATS[4,] <- c(100,83,69)
SEATS[5,] <- c(40,35,52)
SEATS[6,] <- c(43,57,52)
SEATS[7,] <- c(0,31,42)
SEATS[8,] <- c(0,0,36)
SEATS[9,] <- c(44,0,0)
SEATS[10,] <- c(22,0,0)

SEATSl <- kable(SEATS, format="latex")
save_kable(SEATSl, file="SEATS.png")

I am trying to create a table.