r - bquote,解析,表达式以在 ggplot 中以希腊字母和变量作为下标获取多行标签
问题描述
假设我有
paste0("Year = ",index,"\nN = ",length((dfGBD %>% filter(year==index))[[vbl]]),
" Bandwidth = ",round(stats::bw.nrd(log((dfGBD %>% filter(year == index))[[vbl]])),2),
"\nSkewness:", round(e1071::skewness(log((dfGBD %>% filter(year==index))[[vbl]])), 2),
" Kurtosis:",round(e1071::kurtosis(log((dfGBD %>% filter(year==index))[[vbl]])),2),
"\nmu[",vbl,"] = ", round(mean((dfGBD %>% filter(year==index))[[vbl]]),2),
" sigma[",vbl,"] = ",round(sd((dfGBD %>% filter(year==index))[[vbl]]),2)
)
一年之内sapply
。index
此外,vbl
是一个带有变量名称的字符串。sapply
产生labels
一个factor
变量的向量。应用ggplot
我获得类似于下一个标签:
Year = 2000
N = 195 Bandwidth = 0.09
Skewness: 0 Kurtosis: -0.56
mu[Mortality] = 7750.85 sigma[Mortality] = 1803.28
到这里,一切正常。我已经写过mu[vbl]
,sigma[vbl]
考虑解析和下标符号来获取希腊字母,并将变量名称保存vbl
为下标。
首先我尝试facet_wrap
了 option labeller = "label_parsed"
。我得到了一个错误,我只解决了在 backticks 之间写入字符串``
,但\n
没有任何效果。bquote
我使用和/或parse
和/或expression
和/或等尝试了许多选项atop
,以便获得上面描述的所需输出的多行结果。但只有得到或一行或非常难看的输出,或者主要是错误,我还看不到希腊字母。
那么我应该怎么做?
PS:正如其他人所回答stackoverflow
的那样,\n
在这种情况下不起作用,因此bquote
建议为每行列出一个带有 's 的列表。我试过了,但后来我得到一个错误,我认为这是由于所有列表的元素数量和一个因子的标签数量不兼容(alabel
可能不是list
?)。
谢谢!
解决方案
推荐阅读
- firebase - Firebase 设置方法未将数据添加到现有集合
- python - 如果 django 上的其他表中已存在 ID,如何禁用或隐藏分配/重定向按钮
- c# - 是否有一种内置方法可以让异步方法在完成时触发带有返回数据的事件?
- python - 将 pk 传递给 django 中的 CreateView 表单
- ruby - 如何将字段添加到 ElasticSearch 以便在 ruby gem SearchKick 中按其排序
- c - 是否允许优化的输出变量保持超出其范围的值?
- python - BeautifulSoup 上的重复打印和错误打印
- c++ - 为什么下面的代码会导致分段错误(SIGSEGV)?
- python-3.x - tqdm 以人类可读的单位显示下载
- fortran - FORTRAN 77 除以零行为