Não foi possível enviar o arquivo. Será algum problema com as permissões?

Essa é uma revisão anterior do documento!


Entrada de dados e gráficos

Entrada de dados e gráficos

Lendo dados de teclado e da área de transferência

## digitar dados com <ENTER> após cada registro. Digitar um <ENTER> a mais para encerrar.
s1 <- scan()
 
## recortar (CTRL-C) os seguintes
12  13  14  
21  21  14  
12  31  25
15  32  29
 
## lendo como vetor...
s1 <- scan("clipboard")
## .. e transformando para matriz
## le por linhas, portanto para montar matriz de ser por linha 
matrix(s1, nc=3, byrow=T)
 
## agora lendo diretamente como data-frame
d1 <- read.table("clipboard")
d1
 
## mais opcoes
## recortar (CTRL-C) os seguintes
X;      Y;   Z;    S
12,3;  13;  14,2;  A
21,2;  21;  14,0;  A
12,1;  31;  25,1;  B
15,1;  32;  29,9;  B
 
d2 <- read.table("clipboard", sep=";", dec=",", header=T)
d2

Exemplo lendo tabelas da página do MCT/Indicadores

Acessar tabelas na web por www.mct.gov.br/indicadores

Tabela de Produçãoo científica, tabela 5.1 (pesquisadores)

## Marcar/CTRL-C a tabela de indicadores de pesquisadores
pcPesq <- read.table("clipboard", sep="\t", dec=",")
head(pcPesq)
 
## uma um pouco melhor usando mais argumentos
pcPesq <- read.table("clipboard", sep="\t", dec=",", strip.white=T, as.is=T)
head(pcPesq)
 
str(pcPesq)

Note que todas as colunas, exceto a primeira, foram lidas como caracteres!

Note que a tabela usa o caracter "." para separar milhares.
Entretanto o R usa "." como caracter de separação decimal

Duas possíveis formas para contornar e ajustar os dados neste contexto:

  1. Item de lista ordenada converter para números e multiplicar por mil
    pcPesq$V2
    as.numeric(pcPesq$V2)
    as.numeric(pcPesq$V2)*1000
     
    ## agora automatizando para fazer em todas as colunas necessárias
    Pesq <- as.data.frame(lapply(pcPesq, function(x){if(is.character(x)) x <- as.numeric(x)*1000; return(x)}))
    Pesq
  2. Eliminando o caracter "." (por substituição de caracteres.

Pesq1 <- as.data.frame(lapply(pcPesq, function(x){ 
	                  if(!is.numeric(x) & !is.integer(x)) x <- as.numeric(gsub("\\.", "", x))
                          return(x)}))

Agora lendo os indicadores de estudantes e depois unir tudo em um único objeto

pcEst <- read.table("clipboard", sep="\t", dec=",", strip.white=T, as.is=T)
head(pcEst)
 
Est <- as.data.frame(lapply(pcEst, function(x){if(is.character(x)) x <- as.numeric(x)*1000; return(x)}))
Est
 
Pesq$Autor <- "Pesquisador"
Est$Autor <- "Estudante"
 
ProdC <- rbind(Pesq, Est)
ProdC
 
head(ProdC)
names(ProdC) <- c("Ano","Autores","Nacional","Internacional","Anais", "Livros", "Capítulos", "Outras", "Autor")
head(ProdC)
## sempre bom remover o que não é mais necessário...
rm(pcEst, pcPesq, Pesq1, Pesq, Est)

Alguns gráficos
Vamos ilustrar o uso de três (3) dispositivos gráficos do R:

  1. Gráficos básicos do sistema (pacote graphics/default)
  2. Gráficos da biblioteca lattice
  3. Gráficos da biblioteca ggplot

I. gráficos com graphics (padrões do sistema)

## produção total, somando pesquisadores e estudantes
aggregate(Autores ~ Ano, data=ProdC, sum)
plot(aggregate(Autores ~ Ano, data=ProdC, sum))
plot(aggregate(Autores ~ Ano, data=ProdC, sum), type="b", main="Número total de autores")
 
## somando agora todas as produções de Perq e Estudantes por ano
Totais <- aggregate(. ~ Ano, data=ProdC[,-9], sum)
matplot(Totais[,1], Totais[,-1], type="l")
 
names(Totais)
 
matplot(Totais[,1], Totais[,-1], type="l", col=c(1, 2, 2, 3, 4, 4, 5), lty=c(1,1,2,1,1,2,5),
	xlab="Ano", ylab="Quantidade", main="Produção Científica")
legend("topleft", names(Totais)[-1], col=c(1, 2, 2, 3, 4, 4, 5), lty=c(1,1,2,1,1,2,5))
 
## agora separando entre Pesquisadores e Estudantes
## gráficos podem ser feitos de várias formas, aqui alguns exemplos
with(ProdC, plot(Autores ~ Ano, type="n"))
with(ProdC, text(Ano, Autores, substr(Autor, 1, 1))
 
with(ProdC, coplot(Autores ~ Ano|Autor, type="b"))
with(ProdC, coplot(Autores ~ Ano|Autor, type="b", show.given=F))
 
with(subset(ProdC, Autor=="Pesquisador"), plot(Autores ~ Ano, type="b"))
with(subset(ProdC, Autor=="Estudante"), lines(Autores ~ Ano, type="b", col=2))
 
AU <- reshape(ProdC[,c(1,2,9)], idvar="Ano", v.name="Autores", timevar="Autor", direction="wide")
matplot(AU[,1], AU[,-1], type="l", col=c(2,4), lty=1, main="Evolução do número de autores", 
        xlab="Ano", ylab="Número de Autores")
legend("topleft", c("Pesquisadores","Estudandes"), col=c(2,4), lty=1)

II. Gráficos da biblioteca lattice

require(lattice)

III. Gráficos da biblioteca ggplot

install.packages("ggplot2", dep=T) ## contributed package" - é necessário instalar!
require(ggplot2)

## Outro exemplo…. ## Dados socio economicos –> 9.1 ScEc ← read.table("clipboard", dec=",", sep="\t", na.strings="\\u2026 ") head(ScEc)

ScEc ← as.data.frame(lapply(pcPesq, ptMil))

</code>


QR Code
QR Code cursos:mct:exemplo1a (generated for current page)