Вопрос по expression, plot, r – Создать список литералов выражения из целочисленной последовательности

4

Я хотел бы отобразить последовательность целых чисел на последовательность литералов выражения, чтобы использовать последние в качестве меток для отметок на графике, например,

<code>lbls <- lapply(-2:2, function(i) expression(i * pi))
plot(...)
axis(1, at=seq(-2,2)*pi, labels=lbls)
</code>

До сих пор я пробовал все вариантыbquote, substitute, expression и т.д., что я мог придумать, но, видимо, я что-то упустил. Кроме того, часто задаваемые вопросы и связанные с ними вопросы & amp; ответы не полностью решили это для меня.

Как бы я сделал это правильно (я хочуaxis оказыватьpi как греческое письмо и есть-2 ... 2 заменилi в приведенном выше примере)?

Ваш Ответ

2   ответа
2

Попробуй это:

lbls <- parse(text = paste(seq(-2, 2), "pi", sep = "*"))
Это предложение более полезно для тех, чьи выражения в списке совсем другие. Спасибо!
Хороший! Должно быть, я упустил из видуtext параметр в?parse. fotNelton
4

попробуй это:

lbls <- do.call("expression", lapply(-2:2, function(i) substitute(X * pi, list(X = i))))
plot(-10:10, -10:10, xaxt="n")
axis(1, at=seq(-2,2)*pi, labels=lbls)

enter image description here

Работает как шарм, спасибо! fotNelton
Спасибо @Roman или, используяbquote Вы можете написать так:lbls <- do.call("expression", lapply(-2:2, function(i) bquote(.(i) * pi)))

Похожие вопросы