Análise de Dados em R (FNDE) - Módulo 1
Allan Vieira
janeiro de 2018
10 | 34 | 22 | 21 |
2 | 34 | 109 | 3 |
23 | 10 | 67 | 88 |
45 | 88 | 1 | 1 |
0 | 291 | 38 | 92 |
Note que a função scan() lerá seus dados como um único vetor (Verifique com str(out)) ! Cabe a você separá-los da forma correta.
Se quiser transformá-los em um data.frame, jogue primeiro para uma matriz (usando o parâmetro byrow=TRUE) e depois force-os como dataframe, utilizando as.data.frame():
out_df <- as.data.frame(matrix(out, ncol=4, byrow=TRUE))
Há vários parâmetros que podem ser passados a ela, mas 5 são extremamente importantes de serem observados:
#informar a localização correta do arquivo em seu computador;
#lembrar de usar barra invertida dupla no Windows:
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt")
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", header=TRUE)
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", header=FALSE)
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", ... , sep=",")
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", ..., sep=";")
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", ..., sep=" ")
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", ..., sep="\t")
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", ..., dec=",")
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", ..., dec=".")
df <- read.table( file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt", ... , stringsAsFactors=FALSE)
Como na maioria das vezes, estamos lidando com arquivos do tipo .txt ou .csv separados por TAB, vírgula ou ponto e vírgula, o R já traz quatro funções específicas para não perdermos tempo com a especificação dos parâmetros:
Mais informações sobre elas, você encontra no help de read.table!!
Para você não ter que ficar digitando toda vez o caminho completo até seu arquivo, há uma função que te permite navegar até o arquivo, selecioná-lo e, então guardar a sua localização como uma string em um objeto no R.
Tente:
arq.loc <- file.choose()
repasse.loc <- file.choose()
repasse.df <- read.csv2(file=repasse.loc, stringsAsFactors=FALSE)
repasse.df <- read.table(file=repasse.loc, sep=";", dec=",", stringsAsFactors=FALSE)
Verifique o help de write.table e seus argumentos !!
A forma mais simples da write.table é:
write.table(x = objeto_do_R, file="C:\\caminho\\até\\meu\\arquivo\\meu_arquivo.txt" )
Para você não ter que ficar digitando toda vez o caminho completo até seu arquivo, há uma função que te permite navegar até um DIRETÓRIO (o arquivo ainda não existe), selecioná-lo e, então, guardar a sua localização como uma string em um objeto no R.
Tente:
dir.loc <- choose.dir()
dir.loc <- choose.dir()
write.table(x = objeto_do_R, file=paste(dir.loc, "meu_arquivo_novo.csv", sep="\\"), sep=";" )
# verificar estrutura do data.frame:
str(repasse.df)
# calcular algumas estatísticas descritivas das colunas
summary(repasse.df)
## verificar somente algumas linhas do data.frame
head(repasse.df, 10) # primeiras 10 linhas
tail(repasse.df, 10) # últimas 10 linhas
# tabela de frequência:
# contando o número de alunos que apresenta percentual de risco == 20
#... e quantos apresentam risco == 25
table(repasse.df$PERC_RISCO)
# transpor dataframes ou matrizes ou tabelas
t(table(repasse.df$PERC_RISCO))
# como extair partes do dataframe (equivalente a indexação)
subset(repasse.df, PERC_RISCO == 25)
# ou:
repasse.df[repasse.df$PERC_RISCO == 25, ]
# como encontrar e eliminar entradas com NA do meu data:
repasse.df[is.na(repasse.df$PERC_RISCO),] # is.na() retorna vetor lógico
# OBS : tudo que vetor numérico ou lógico podem ser utilizados como índices de outros objetos no R
# ou:
subset(repasse.df, PERC_RISCO == "NA") # função subset encara NA como uma string
# função with - para evitar ter que ficar digitando tda hora o nome do dataframe
repasse.df$nova_coluna <- with(reapsse.df, (VR_DIVIDA*PERC_RISCO)/VR_REPASSE)
Obrigado!!