将Excel中的下标获取到R中

将Excel中的下标获取到R中,r,excel,graph,subscript,R,Excel,Graph,Subscript,我刚开始学习R,但我已经有了第一个问题。我想在图表中显示我的数据。我的数据位于转换为.csv表格的Excel表格中。但我的数据中有一些化学公式,比如Fe2O3,在.csv中,所有的订阅都消失了。那看起来不太好。有没有办法将原始Excel文件中的下标输入R? 我非常感谢您的帮助:) 编辑:我的数据包含x轴上显示的6个化学配方,它们都包含下标(即Fe2O3、ZnCl2、CO2等)和y轴上显示的数值。图表是一个条形图。我不确定是否有办法将数字更改为R中的子类别,或者在导入之前保留它们 图表如下所示。但

我刚开始学习R,但我已经有了第一个问题。我想在图表中显示我的数据。我的数据位于转换为.csv表格的Excel表格中。但我的数据中有一些化学公式,比如Fe2O3,在.csv中,所有的订阅都消失了。那看起来不太好。有没有办法将原始Excel文件中的下标输入R? 我非常感谢您的帮助:)

编辑:我的数据包含x轴上显示的6个化学配方,它们都包含下标(即Fe2O3、ZnCl2、CO2等)和y轴上显示的数值。图表是一个条形图。我不确定是否有办法将数字更改为R中的子类别,或者在导入之前保留它们

图表如下所示。但我想把这些数字作为下标:


我不知道有什么方法可以将excel中的格式转换成CSV格式,然后再转换成R格式,除非您可以使用unicode生成这些下标

考虑到你的化学品清单很短,调整化学品名称以帮助ggplot用下标解释它们并不需要太多工作。如果要包含更多元素,则需要在数字周围加上括号,然后再加上波浪号。然后我们还告诉
scale\u x\u discrete
对标签进行“解析”,并将这些符号转换为格式

set.seed(42)
chem_df <- tibble(
  Chemicals = 
    c("AgNO3", "Al2SiO5", "CO2", "Fe2O3", "FeSO4", "ZnCl2"),
  Chemicals_parsed = 
    c("AgNO[3]", "Al[2]~SiO[5]", "CO[2]", "Fe[2]~O[3]", "FeSO[4]", "ZnCl[2]"),
  Mean   = rnorm(6, 50, 30))

ggplot(chem_df, aes(x=Chemicals_parsed, Mean)) + geom_col() + 
  scale_x_discrete(name = "Chemicals",
                   labels=parse(text=chem_df$Chemicals_parsed))
set.seed(42)

chem_df为了补充@JonSpring的优秀答案,您可以编写一个函数,将
“Al2SiO5”
等字符串转换为
“Al[2]~SiO[5]”
,因此您不必手动进行所有转换:

library(stringr)

chem.form <- function(s){
  s <- str_replace_all(s,"([0-9]+)","[\\1]~")
  if(endsWith(s,"~")) s <- substr(s,1,nchar(s) - 1)
  s
}

Chemicals <- c("AgNO3", "Al2SiO5", "CO2", "Fe2O3", "FeSO4", "ZnCl2")
Chemicals_parsed <- as.vector(sapply(Chemicals,chem.form))
库(stringr)

chem.form不是完全重复的,但显示了如何在R图中获取下标。为了获得进一步的帮助,如果您提供了可复制的数据,这将有所帮助。请参阅。除了数据,您能否为我们展示一个简单的示例,说明您要制作的图形类型?