1

我有数字变量,比如 K=3.5e-5(它的值是在我的脚本中计算的)。我想在我的情节中的某处(标题,情节中的文本等)写下这个值:

K_{root} = 3.5 10^{-5} cm /d

我已经尝试了这些功能bquotesubstitute但没有人工作。

让我们把这个问题放在例子中。我尝试了以下方法:

1)

png("exp_1.png")
kroot = 3.5e-5
plot(1:10,1:10,
text(4,9,bquote(italic(K[root])~"="~.(kroot)~"cm/d")))
dev.off()
4

2 回答 2

2

试试我最喜欢的函数 paste()。

plot(1:10,1:10,
text(4,9,gsub("e",paste("K[root]=",format(k,scientific=TRUE),"cm/d",sep=" "),replacement=" 10^")))

您可以使用函数 gsub 替换此处的“e”。我已经编辑了我的答案以包括这个。

输出:

 > k=.0000035
 > k
 [1] 3.5e-06


> gsub("e",paste("K[root]=",format(k,scientific=TRUE),"} cm/d",sep=" "),replacement=" 10^{ ")
[1] "K[root]= 3.5 10^{ -06 } cm/d"

如果它很重要,您可以使用函数 substr 删除多余的空格 { -06 },或者在 gsub 语句中省略大括号。

于 2013-08-23T16:10:18.137 回答
1

我尽量避免在表达式中使用粘贴。通常有一种更清洁的方法来解决这个问题:

expon <- floor(log10(kroot))  # returns -5
mantis <- kroot*10^(-1*expon ) # returns 3.5
plot(1:10,1:10,
text(4,9,substitute( italic(K[root]) == mantis %.% pten* expon ~cm/d, 
                        list(expon=expon, mantis=mantis, pten=" 10^")))

在此处输入图像描述

于 2014-05-31T22:50:16.997 回答