Мне нужно сгенерировать форматированную строку, которая включена на графики, которые указывают средний, межквартильный диапазон и количество наблюдений, на которых оно основано. Вот что я пытаюсь ...Распечатка форматированного текста
plot(x=runif(4, 0,100), y=1:4, yaxt="n", ylab="", xlim=c(0,100))
m <- "2.3~x~10^6"
l <- "1.2~x~10^6"
u <- "4.5~x~10^6"
n <- 50
my_string <- paste0(m, "~(", l, "~-~", u, ")~plain(,)", "~N==~", n, "~)")
text(x=50, y=2.5, parse(text=my_string))
Это порождает следующую ошибку ...
Error in parse(text = my_string) : <text>:1:54: unexpected ')'
1: 2.3~x~10^6~(1.2~x~10^6~-~4.5~x~10^6)~plain(,)~N==~50~)
Если я
plot(x=runif(4, 0,100), y=1:4, yaxt="n", ylab="", xlim=c(0,100))
m <- "2.3~x~10^6"
l <- "1.2~x~10^6"
u <- "4.5~x~10^6"
n <- 50
my_string <- paste0(m, "~(", l, "~-~", u, ")")
text(x=50, y=2.5, parse(text=my_string))
Я получаю форматирование я после с показателем, поднятым, но у меня нет включенного N. В стороне, кажется, бросают дополнительные пространства, которые в идеале не были бы там.
Любые предложения по работе первого блока кода?
Спасибо! Но зачем ему это делать, если скобки были в кавычках? Кроме того, какие-либо мысли о дополнительном расстоянии от запятой? –
Потому что вы 'parse()' -в строке. Это означает, что выражение должно быть действительным R-кодом. В моем ответе я процитировал запятую, чтобы она появилась. В противном случае это похоже на то, что вы передаете два отсутствующих параметра в 'plain()'. Опять же, 'parse()' превращает все в выражение, которое должно быть допустимым R-кодом, а затем маска '? Plotmath' отображает это выражение R в симпатичный дисплей. – MrFlick