2.1 Leitura de dados - SARESP
O arquivo com os dados está disponível com os seguintes comandos:
> saresp<-read.fwf('http://www.ufpr.br/~aanjos/TRI/dados/manha.dat',widths=c(12,3,rep(1,31)),header=FALSE,skip=1,na.strings=' ')[,-3]
> colnames(saresp)<-c('id','turno',paste('i',1:30,sep=""))
Para ver os dados desse objeto digite:
id turno i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13
1 11001138433 m07 A D D C A A D B D B A B D
2 11002964093 m07 D B A C A A C D A B A C D
3 11004154243 m07 A B D C A A B C D D A A D
4 11005367283 m07 D C D C A C A B A D C C C
5 11007519633 m07 D B D C A B C D B A A B D
6 11008054863 m07 D D B C A A C D B A A A C
i14 i15 i16 i17 i18 i19 i20 i21 i22 i23 i24 i25 i26 i27 i28
1 D A B A B C B C B D C C A A D
2 B B A A B D D B C A A C D A D
3 B D D A B D A D C D D A D A C
4 C A D C B C A B C C C C A A B
5 B D C C D B D D B A D B B A B
6 B B B C B D D D B A D B C A C
i29 i30
1 B C
2 B C
3 B C
4 C D
5 B A
6 B C
O gabarito pode ser obtido de maneira semelhante:
> gabarito<-read.fwf('http://www.ufpr.br/~aanjos/TRI/dados/manha.dat',widths=c(-16,rep(1,30)),header=F,nr=1,na.string="")
> gabarito
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18
1 A B D C A A B C D C A A D B D D A B
V19 V20 V21 V22 V23 V24 V25 V26 V27 V28 V29 V30
1 D D D C D C A D A D B C
Observe que as respostas e também o gabarito foram fornecidos em modo
literal (letras). No R as principais funções conhecidas para análise de dados da
TRI requerem que as respostas estejam em um objeto do tipo data.frame ou
matrix com números 0 e 1 (0 indica uma resposta incorreta e 1 uma resposta
correta).
No pacote Deducer há uma função chamada recode.variables() que pode ser
utilizada para converter as respostas literais em números.
Para instalar opacote utilize o comando install.packages('Deducer')
.
Para obter o pacote utilize:
A recodificação pode ser realizada da seguinte maneira:
> dados<-recode.variables(saresp,"'A'->1; 'B'->2; 'C'->3; 'D'->4")
Observe, que por opção, foi criado um novo objeto chamado dados. Utilize a função
head para ver uma parte dos dados. Na recodificação não são mantidos os nomes das colunas
do arquivo original. Por isso, utiliza-se a função names() para recolocar os nomes das
colunas.
> names(dados)<-names(saresp) # colocar os nomes do arquivo original
Também, é necessário recodificar o gabarito:
> gab2<-recode.variables(gabarito,"'A'->1; 'B'->2; 'C'->3; 'D'->4")
Observe que no objeto dados as respostas estão codificadas com os valores 1,2,3 e 4. No
pacote ltm há uma função chamada multi.choice() que transforma as respotas em 0 ou 1
de acordo com o gabarito.
O objeto manha contém as respostas numéricas no formato 0 e 1.
> manha.NA<-mult.choice(dados[,3:32],as.numeric(gab2)) #ltm
i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 i16 i17
[1,] 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1
[2,] 0 1 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1
[3,] 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
[4,] 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0
[5,] 0 1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0
[6,] 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0
i18 i19 i20 i21 i22 i23 i24 i25 i26 i27 i28 i29 i30
[1,] 1 0 0 0 0 1 1 0 0 1 1 1 1
[2,] 1 1 1 0 1 0 0 0 1 1 1 1 1
[3,] 1 1 0 1 1 1 0 1 1 1 0 1 1
[4,] 1 0 0 0 1 0 1 0 0 1 0 0 0
[5,] 0 0 1 1 0 0 0 0 0 1 0 1 0
[6,] 1 1 1 1 0 0 0 0 0 1 0 1 1