2013-07-05 2 views
0

Привет Я пытаюсь написать выражение с входной переменной, например:, как бороться с отрицательными в bquote выражении в R

a=1 
b=-2 
bquote(y == .(a)*x+.(b)) 

полученных результатов y == 1 * x + -2 не y == 1 * x - 2, как я ожидал.

Есть ли все-таки иметь дело с этим? Благодаря!

+0

Если я устанавливаю = 2 и Ь = 2 и использовать bquote (у ==. (a) * x -. (b)) Я получаю y == 2 * x - 2, но я не знаю, поможет ли это. –

ответ

3

Я не знаю элегантный способ, вы можете проверить на знак и вернуть другой символ,

pm <- function(x){ 
    if(sign(x) == -1L) 
    return(bquote("-"~.(abs(x)))) else 
    bquote("+"~.(x)) 
} 

grid::grid.text(bquote(y== .(a)*x~.(pm(b)))) 
+0

+1 Мне пришлось использовать: library (grid) –