bquote, синтаксический анализ, выражение для получения многострочных меток в ggplot с греческими буквами и переменными в качестве индексов - PullRequest
0 голосов
/ 19 июня 2019

Допустим, у меня есть

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 с опцией labeller = "label_parsed". Я получил ошибку, которую я только решил записать строку между обратными чертами ``, но тогда \n не имеет никакого эффекта. Я перепробовал много вариантов, используя bquote и / или parse и / или expression и / или atop и т. Д., Чтобы получить результат с несколькими строками с желаемым выводом, который я описал выше. Но только получить или одну строку или очень некрасивые выводы или, в основном, ошибки, и я пока не мог видеть греческие буквы.

Так что / как мне делать?

PS: как ответили другие stackoverflow, \n не работает в этом контексте, поэтому предлагается список с bquote для каждой строки. Я попробовал это, но затем я получил ошибку, которая, по-моему, связана с несовместимостью количества элементов всех списков и количества меток фактора (label не может быть list?).

Спасибо!

...