4

再会!

我对 R 不是很熟悉,所以我很乐意得到一些帮助。

假设我有以下最小示例:

test <- c(10,20,40,80,80)
avg <- mean(test)
avg <- format(avg,digits=2)

plot(test, xlab="x", ylab="y", pch = 4)
legend("topleft", legend= c("Average: ", avg))

我想写 x̄ 而不是“平均” - 想知道这是否可能,因为它不是常规符号 - 只是两个的组合(字母加上划线)。

我想摆脱的另一件事是“平均”一词之后的换行符(见下图中的箭头):

输出

4

1 回答 1

8

这里有两个问题。第一个是这是?plotmath在 R 中使用处理的。您要查找的运算符是bar(). 这不是plotmath一个函数,而是可以理解的标记。

第二个是您需要一个表达式,在其中avg转换为其值。你需要一个表达式,因为这是plotmath可以使用的。这个问题有几种解决方案,但我在下面使用的一个是bquote(). 你为它提供一个表达式,任何包含在其中的东西都.( )将通过评估.( ).

这是您的代码和经过适当修改的legend()调用:

test <- c(10,20,40,80,80)
avg <- mean(test)
avg <- format(avg,digits=2)

plot(test, xlab="x", ylab="y", pch = 4)
legend("topleft", legend = bquote(bar(x)*":" ~ .(avg)))

请注意,这将准确插入avg. 你可能需要做

avg <- round(avg)

或其他一些格式修复,以获得漂亮和像样的东西。

于 2012-11-12T14:02:02.513 回答