<p>Yes.  You can even practice now on the results of our first election held in 2011: find them at <a href="https://stats.stackexchange.com/election/1">https://stats.stackexchange.com/election/1</a>.  (For some inspiration, check out what <a href="https://mathematica.stackexchange.com/questions/11120">another site has done</a> with their election results.)</p>

<hr>

<p>As an example, here is <code>R</code> code to read and process an election file from a sister site's election (GIS in 2013).  (I chose this because my familiarity with the details enabled me to verify the code is processing the data correctly.)  It also tabulates the votes as shown in this barplot:</p>

<p><img src="https://i.stack.imgur.com/jQH5K.png" alt="Barplot"></p>

<p>(Candidates are ordered by a heuristic likely to correspond to the outcome of the election.)</p>



<pre><code>source &lt;- "http://gis.stackexchange.com/election/download-result/2"
#
# Read and process the election descriptor record
v &lt;- unlist(read.table(source, nrows=1))
n.candidates &lt;- v[1]
n.positions &lt;- v[2]
#
# Read the rest of the file
x &lt;- read.table(source, skip=1, fill=TRUE)
#
# Process the candidate descriptor record
candidates &lt;- x[j &lt;- is.na(x[,2]), 1]
na.candidate &lt;- candidates[1]
candidates &lt;- candidates[c(-1,-length(candidates))]
#
# Process the voting record
votes &lt;- x[!j, 2:4]
d &lt;- unlist(apply(votes, 1, function(z) 
  sapply(z, function(i) ifelse(i==0, NA, candidates[i]))))
rownames(d) &lt;- c("First", "Second", "Third")
#
# Tabulate the raw results found in array `d`
results &lt;- apply(d, 1, table, useNA="always")
rownames(results) &lt;- c(levels(candidates)[sort(candidates)], "NA")
i &lt;- order(results %*% c(5,3,1), decreasing=TRUE)
results[i, ] # Prints the two-way table of candidate by position
#
# Plot the tabulated results
barplot(t(results[i,]), legend.text=colnames(results), main=source)
</code></pre>
