#### Exercícios - Aula 3: Leitura e Manipulação de Dados - Monitoria 2010


getwd()
setwd ("C:/Users/Barbara/Documents/Mestrado/Monitoria/aula manipulacao")


##########	Distância entre cidades		##########

mat.dist<-matrix(c(0, 3949, 3000, 3927, 3949, 0, 1273,3188,3000,1273,0,1827,3927,3188,1827,0),nrow=4,ncol=4)
mat.dist
rownames(mat.dist)<-c("atenas","madrid","paris","estocolmo")
mat.dist
colnames(mat.dist)<-rownames(mat.dist)
mat.dist

eurodist
class(eurodist)
class(mat.dist)
mat.eurodist<-as.matrix(eurodist)
mat.eurodist
class(mat.eurodist)		### ainda não pode comparar pq tem dimensões diferentes
mat.euro.res<-mat.eurodist[c("Athens","Madrid","Paris","Stockholm"),c("Athens","Madrid","Paris","Stockholm")]   ###para reduzir, por linhas e colunas
mat.euro.res
mat.dist
mat.euro.res==mat.dist	### para comparar matrizes
table(mat.euro.res==mat.dist)

##########	Criação de um data frame		##########

var.pes<-c(0.1,1.1,3.7,5.7,-1.2,-1.5,3.0,-0.4,0.6,1.5,-0.1,2.0,0.6,-3.0,-0.3,-0.2,0.3,1.5)
feno.cl<-rep("claros",times=9)
feno.es<-rep("escuros",times=9)
dieta<-rep(c("dietaA","dietaB","dietaC"),each=3,times=2)
frame=data.frame(feno=c(feno.cl,feno.es),dieta=dieta,peso=var.pes)
head (frame)
str(frame)

matriz<-matrix(c(feno.cl,feno.es,dieta,var.pes),nrow=18,ncol=3)
head(matriz)

tapply(frame$peso,INDEX=frame$dieta,FUN=mean)
tapply(frame$peso,INDEX=frame$feno,FUN=mean)

consulta <- aggregate(frame$peso, by=list(feno=frame$feno,dieta=frame$dieta),
                         FUN=mean)
consulta

?expand.grid


##########	Criando uma Matriz	##########

distrib<-rnorm(15,mean=10,sd=sqrt(3.6))
distrib
mat<-matrix(distrib, nrow=3,ncol=5)
mat

##2
colnames(mat)<-paste("C",1:5)
rownames(mat)<-paste("L",1:3)
mat

##3
media.col<-apply(mat,2,mean)  
media.lin<-apply(mat,1,mean)
var.col<-apply(mat,2,var)  
var.lin<-apply(mat,1,var)
frame2<-data.frame(media=c(media.col=media.col,media.lin=media.lin),var=c(var.col=var.col,var.lin=var.lin))
row.names(frame2)<-c("col1","col2","col3","col4","col5","lin1","lin2","lin3")
frame2

##########	Lendo e Salvando seus dados	##########

dados<-read.table("caixeta.csv",header=T,sep=",")
dados
head(dados)
summary(dados)
str(dados)    
local<- dados[dados$local=="chauas",]	### selecionando pela localidade
local
local2<-local[c(5,6,7)]	#### selecionando as colunas 5,6 e 7
head (local2)
write.table(local2,file="local6.txt",row.names=F,sep="\t")  

##########	Classes de Objetos	##########

iris
class(iris)    ###classe = "data.frame"
iris3
class(iris3)   ###classe = "array"


##2
str(iris)
head(iris)
tapply(iris$Sepal.Length,INDEX=iris$Species,FUN=mean)   ###setosa:5.006, versicolor:5.936, virginica:6.588
tapply(iris$Sepal.Width,INDEX=iris$Species,FUN=mean)    ###setosa:3.428, versicolor:2.770, virginica:2.974
tapply(iris$Petal.Length,INDEX=iris$Species,FUN=mean)   ###setosa:1.462, versicolor:4.260, virginica:5.552
tapply(iris$Petal.Width,INDEX=iris$Species,FUN=mean)   ###setosa:0.246, versicolor:1.326, virginica:2.026

str(iris3)
head(iris3)
apply(iris3[,,"Setosa"],2,FUN=mean)
apply(iris3[,,"Versicolor"],2,FUN=mean)
apply(iris3[,,"Virginica"],2,FUN=mean)


##3
nomes.iris<-c("Comp.sepala","Larg.sepala","Comp.petala","Larg.petala","Especies")
nomes.iris
names(iris)<-nomes.iris
head(iris)

##########	Acrescentando Dados de Síntese	##########

##1
esaligna<-read.csv("esaligna.csv",header=T,sep=",")
head (esaligna)

##2
summary(esaligna)
class(esaligna)

##3
esaligna$fol.tronco<- esaligna$tronco+esaligna$folha
head(esaligna)   

##4
esaligna$basal<-pi*(esaligna$dap/2)^2
class(esaligna$talhao)

##5
esaligna.factor<-factor(esaligna$talhao)
class(esaligna.factor)
levels(esaligna.factor)
basal.talhao<-tapply(esaligna$basal,INDEX=esaligna$talhao,2,FUN=sum)
basal.talhao

##6
media.basal.talhao<-tapply(esaligna$basal,INDEX=esaligna$talhao,2,FUN=mean)
media.basal.talhao

##7
head(esaligna)
diam10<-esaligna[esaligna$dap>10,]
str(diam10)
write.table(diam10,file="diam10.txt",row.names=F,sep="\t")




