Skip to content

Instantly share code, notes, and snippets.

@fernandojunior
Last active June 11, 2016 22:01
Show Gist options
  • Save fernandojunior/bb2c3f2857b5c0b577fa6817f4271d91 to your computer and use it in GitHub Desktop.
Save fernandojunior/bb2c3f2857b5c0b577fa6817f4271d91 to your computer and use it in GitHub Desktop.
Análise simples de disciplinas que um aluno quer cursar
aluno trilha quantidade aprovacoes taxa
a 41119 7 4 0.57
b 32799 7 7 1
c 32927 7 5 0.5
d 41119 7 6 0.86
e 41119 7 3 0.42
f 32925 6 5 0.83
join = function (x) paste(x, collapse='')
bin_to_int = function (str) strtoi(str, base=2)
dados = read.csv('dados.csv')
colnames(dados)
# [1] "aluno" "d1" "d2" "d3" "d4"
# [6] "d5" "d6" "d7" "d8" "d9"
# [11] "d10" "d11" "d12" "d13" "d14"
# [16] "d15" "d16" "quantidade" "aprovacoes" "taxa"
# Reduzindo dimensoes pra economizar memoria, melhorar desempenho e facilitar
# busca de informacao
dados = cbind(dados[1], trilha=bin_to_int(join(dados[2:17])), dados[18:length(dados)])
# dados = read.csv('dados2.csv')
# aluno trilha quantidade aprovacoes taxa
# 1 a 41119 7 4 0.57
# 2 b 32799 7 7 1.00
# 3 c 32927 7 5 0.50
# 4 d 41119 7 6 0.86
# 5 e 41119 7 3 0.42
# 6 f 32925 6 5 0.83
# Quais as trilhas mais escolhidas pelos alunos?
frequencia_trilha = table(dados$trilha)
# 32799 32925 32927 41119
# 1 1 1 3
# Qual a media de taxa de aprovacao?
taxa_media_por_trilha = aggregate(taxa ~ trilha, dados, mean)
# trilha taxa
# 1 32799 1.0000000
# 2 32925 0.8300000
# 3 32927 0.5000000
# 4 41119 0.6166667
# taxa media de aprovacao e frequencia por trilha
trilhas = cbind(taxa_media_por_trilha, frequencia=as.vector(frequencia_trilha))
# trilha taxa frequencia
# 1 41119 1.0000000 1
# 2 32799 0.8300000 1
# 3 32927 0.5000000 1
# 4 32925 0.6166667 3
# Trilha de disciplinas que um aluno x quer cursar no perido:
trilha = bin_to_int(join(c(1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1)))
# 41119
# Sera que vale a pena?
trilhas[trilhas$trilha == trilha, ]
# 4 41119 0.6166667 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment