Use a variable within a plotmath expression

后端 未结 3 975
傲寒
傲寒 2020-11-30 06:45

I\'m trying to place the results of a regression (i.e., R2) in a graph, but can\'t seem to figure out how to call a variable from within an expression (it pastes the variabl

相关标签:
3条回答
  • 2020-11-30 07:20

    To combine substitute() and paste(), I use the following code;

    waic <-1;
    chisquare <-2;
    plot(x=1:2,y=1:2, 
         main =  substitute(paste(
        "chi^2 goodness of fit ", 
           chi^2*(D/theta) , "=",  chisquare ,
           ".  WAIC =",waic),
    
    
    list(chisquare=chisquare,waic=waic)  
    )
    )
    

    The result is the following;

    0 讨论(0)
  • 2020-11-30 07:23

    Use bquote(). Here is an example with dummy data:

    set.seed(1)
    DF <- data.frame(A = rnorm(100), B = rnorm(100))
    mod <- lm(B ~ A, data = DF)
    R2Val<-signif(summary(mod)$r.squared[1], 2)
    

    The parts of the expression wrapped in .() get evaluated in the environment, i.e. the value of R2Val is substituted.

    plot(B ~ A, data = DF)
    text(1.5, 2, labels = bquote(R^2 == .(R2Val)), adj = 0, cex = 0.85)
    

    Another potential solution is substitute, which works similarly:

    plot(B ~ A, data = DF)
    text(1.5, 2, labels = substitute(R^2 == A, list(A = R2Val)), adj = 0, cex = 0.85)
    
    0 讨论(0)
  • 2020-11-30 07:23

    I've managed to put it together using the substitute function.

    R2Val <- signif(summary(sMod_pre90)$r.squared[1], 2)
    text(92, 4, substitute(R^2 ~ "=" ~ R2Val), adj = 0, cex = 0.85)
    

    All is good.

    0 讨论(0)
提交回复
热议问题