美好的一天!

我对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̄而不是“ average”-不知道这是否有可能发生,因为它不是常规符号-只是两者的组合(字母加上划线)。

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

最佳答案

这里有两个问题。首先,这是使用R中的?plotmath处理的。要查找的运算符是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)


或其他一些格式修复程序,以获得更好的外观。

07-24 09:51