plot_bin_effectsize: plot_bin_effectsize

Usage Arguments Examples

View source: R/plot_bin_effectsize.R

Usage

1
plot_bin_effectsize(bestoutputs, variable, testdata, estitle = NULL, saveesfile, espicdim, goodtype = "goodpvname", effecttext = FALSE)

Arguments

bestoutputs
variable
testdata
estitle
saveesfile
espicdim
goodtype
effecttext

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function (bestoutputs, variable, testdata, estitle = NULL, saveesfile, 
    espicdim, goodtype = "goodpvname", effecttext = FALSE) 
{
    levs <- levels(testdata[[variable]])
    select <- switch(goodtype, goodpsigname = bestoutputs$goodpsigname, 
        goodpvname = bestoutputs$goodpvname, goodesname = bestoutputs$goodesname, 
        stop("goodtype must be one of the follows: 'goodpsigname', 'goodpvname' and 'goodesname'."))
    selname <- bestoutputs$selname
    df <- data.frame(matrix(0, length(selname), 2))
    row.names(df) <- selname
    colnames(df) <- c("selname", "effectsize")
    df$selname <- selname
    df$effectsize <- bestoutputs$effectsize0
    df1 <- df[selname %in% select, ]
    ranktemp <- apply(testdata[, select], 2, rank, ties.method = "average")
    rankmean <- aggregate(ranktemp, by = list(group = testdata[[variable]]), 
        mean)
    df1$signed <- t(sign(rankmean[rankmean$group == levs[2], 
        -1] - rankmean[rankmean$group == levs[1], -1]))
    temp <- df1[df1$signed == -1, ]
    temp <- temp[order(temp$effectsize), ]
    df2 <- rbind(df1[df1$signed == 1, ], temp)
    df2$signedeffect <- df2$effectsize * df2$signed
    df2$selname <- factor(df2$selname, levels = df2$selname)
    df2[[variable]] <- factor(ifelse(df2$signed == 1, levs[2], 
        levs[1]))
    p <- ggplot(df2, aes(selname, signedeffect)) + geom_bar(stat = "identity", 
        aes_string(fill = variable)) + scale_fill_manual(values = c("#00b0f6", 
        "#f8766d")) + geom_hline(yintercept = 0, size = 2) + 
        ylab("Effect size") + xlab("Selected features with decreasing order") + 
        coord_flip() + ggtitle(estitle) + theme_bw() + theme(plot.title = element_text(size = 24, 
        face = "bold"), legend.title = element_text(size = 20), 
        legend.text = element_text(size = 16)) + theme(axis.line = element_line(colour = "black"), 
        panel.border = element_blank(), panel.background = element_blank(), 
        axis.line.x = element_line(color = "black", size = 1), 
        axis.line.y = element_line(color = "black", size = 1), 
        axis.text = element_text(size = 16, face = "bold"), axis.title = element_text(size = 20, 
            face = "bold"))
    if (effecttext == TRUE) {
        p <- p + geom_text(aes(label = round(effectsize, 2), 
            hjust = 0.5, angle = 0))
    }
    ggsave(filename = saveesfile, width = espicdim[1], height = espicdim[2])
    return(p)
  }

LyonsZhang/ProgPermute documentation built on July 22, 2020, 4:09 p.m.