Skip to content

Instantly share code, notes, and snippets.

@vsoch
Created November 17, 2014 00:14

Revisions

  1. vsoch created this gist Nov 17, 2014.
    12 changes: 12 additions & 0 deletions imaging_scientist_scores.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,12 @@
    domain total_points earned_points
    domain expertise, source 4 2
    domain expertise,value 4 2
    domain expertise, impact 4 1
    programming, breadth 5 4
    programming, depth 5 4
    programming, software 7 5
    methods, implementation 5 3
    methods,understanding 7 4
    communication, verbal 6 4
    communication, written 9 6
    communication, visual 8 5
    38 changes: 38 additions & 0 deletions imaging_scientist_scoring.R
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    # Read in data file with domain categories, total points, and earned points
    data = read.csv("imaging_scientist_scores.txt",sep="\t",head=TRUE)

    # We want the categories to be the rows
    rownames(data) = data$domain
    data = data[,-1]

    # Now we want to summarize as percents! Let's normalize each to be
    # a percentage between 0 and 100. For fun, let's write a function that we
    # can apply to the matrix to return the matrix to plot!

    unecessary_function_for_score = function(row) {
    possible = row[1]
    earned = row[2]
    total = possible + earned
    possible_perc = possible / total
    earned_perc = earned / total
    return(c(earned_perc,possible_perc))
    }

    # Apply it to our matrix!
    score = apply(data,1,unecessary_function_for_score)

    # Oops, let's transpose it so it's more easy to read
    score = as.data.frame(t(score))

    # We want to sort the rows from least to greatest achievment
    score = score[with(score, order(-earned_points)), ]

    # We need to make our margins a little bigger for the text
    par(mar=c(12,4,4,2))

    # Get some nice "colours"!
    colors = sample(colours(),2)

    # One more flip, and as a matrix for the barplot function...
    barplot(as.matrix(t(score)), col = colors, main = "Vanessa Graduate Student Avatar Progress!",ylab="progress",xlab="",width=2,las=2)
    legend(20,.8, inset = c(-0.25, 0), fill = colors, legend = c( "accomplished","to go"),bg="white")