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

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
software:art:scripts:scriptgm-pj [2007/11/16 19:26]
paulojus
software:art:scripts:scriptgm-pj [2007/11/18 23:11] (atual)
paulojus
Linha 1: Linha 1:
-Script by PJ on 16/11/2007+Script by PJ on 18/​11/​2007 ​(23:00 BRT)
  
 <code R> <code R>
- 
 ## ##
 ## Importação dos dados de arquivos ## Importação dos dados de arquivos
Linha 9: Linha 8:
 ##    - poligonos com municípios do Paraná ##    - poligonos com municípios do Paraná
 ## ##
- 
 ## carregando os pacotes que serão usados (aRT) ## carregando os pacotes que serão usados (aRT)
 require(aRT) require(aRT)
Linha 19: Linha 17:
 ##Apagar banco já existente ##Apagar banco já existente
 if(any(showDbs(con)=="​geomedicina"​)) deleteDb(con,​ "​geomedicina",​ force=T) if(any(showDbs(con)=="​geomedicina"​)) deleteDb(con,​ "​geomedicina",​ force=T)
- 
 ##Criando um novo banco ##Criando um novo banco
 db=createDb(con,​ "​geomedicina"​) db=createDb(con,​ "​geomedicina"​)
 db db
- 
 ## string definindo a projeção ## string definindo a projeção
 proj="​+proj=latlong +ellps=GRS67 +towgs84=-66.8700,​-4.3700,​-38.5200"​ proj="​+proj=latlong +ellps=GRS67 +towgs84=-66.8700,​-4.3700,​-38.5200"​
- 
 ## ##
 ## Layer 1: municípios ## Layer 1: municípios
Linha 36: Linha 31:
 ##Adicionar ao BD o contorno do Paraná disponível em shapefile (fonte: IBGE) ##Adicionar ao BD o contorno do Paraná disponível em shapefile (fonte: IBGE)
 addShape(l.pr,​ tab="​Parana",​ file="​parana_pol.shp",​ id="​CODIGO",​ length=10) addShape(l.pr,​ tab="​Parana",​ file="​parana_pol.shp",​ id="​CODIGO",​ length=10)
- 
 ## verificando status do banco e layer ## verificando status do banco e layer
 db db
Linha 73: Linha 67:
 ## Lendo atributos dos poligonos (munícipios) de outra fonte (DATASUS) ## Lendo atributos dos poligonos (munícipios) de outra fonte (DATASUS)
 ## (serão necessárias operações para compatibilizar com dados do IBGE) ## (serão necessárias operações para compatibilizar com dados do IBGE)
- 
 figado <- read.csv("​cancerfigadopop2005.csv"​) figado <- read.csv("​cancerfigadopop2005.csv"​)
 head(figado) head(figado)
Linha 83: Linha 76:
  
 ## um município trocou o nome..... ## um município trocou o nome.....
-## fix (temporário até obter mapa atualizado do IBGE)+## fix (temporário até obter mapa atualizado do IBGE.... se tiver... 
 +## no site do IBGE consta Alto Paraíso -- o nome atual--, mas no arquivo apra download ainda está 
 +## Alta Vista, mesmo para 2005)
 ## para arquivo do IBGE (Vila Alta == Alto Paraíso) ## para arquivo do IBGE (Vila Alta == Alto Paraíso)
  
Linha 89: Linha 84:
 figado[figado$municipio == "Alto Paraíso",​ "​municipio"​] <- "Vila Alta" figado[figado$municipio == "Alto Paraíso",​ "​municipio"​] <- "Vila Alta"
  
 +## verificando igualdade entre nomes de Municípios
 all.equal(municDt$NOME,​figado$municipio) all.equal(municDt$NOME,​figado$municipio)
 ##estão em ordem diferente... ##estão em ordem diferente...
Linha 106: Linha 102:
  
 ## checando e corrigindo **CODIGOS** dos municípios:​ ## checando e corrigindo **CODIGOS** dos municípios:​
-## código do IBGE tem 1 campo a mais que o do DATASUS+## código do IBGE tem 1 dígito ​a mais que o do DATASUS ... 
 +## vamos extrair do IBGE e anexar ao do DATASUS
 figado$id <- as.character(figado$id) figado$id <- as.character(figado$id)
  
-cbind(figado$id,​ municDt$CODIGO)+head(cbind(figado$id,​ municDt$CODIGO))
 figado$id <- paste(figado$id,​substr(municDt$CODIGO,​ 7, 7),​sep=""​) figado$id <- paste(figado$id,​substr(municDt$CODIGO,​ 7, 7),​sep=""​)
 all.equal(municDt$CODIGO,​figado$id) all.equal(municDt$CODIGO,​figado$id)
  
- +## 
-## Q: suponha agora que eu tenha varios ​atributos ​no R, provenientes ​de outra +## Adicionando ​atributos de outra fonte de dados aos polígonos 
-##    ​fonte e associados ​aos polígonos ​como acima. +##
-##    Qual a melhor maneira de adicionar à tabela já existente (Paraná)?​ +
-##    (tem que ser coluna a coluna com updatecolumns ou melhor abrir outra tabela ?+
 ## No exemplo abaixo quero adicionar o data frame "​figado"​ ao banco  ## No exemplo abaixo quero adicionar o data frame "​figado"​ ao banco 
  
Linha 125: Linha 120:
 #> getID(municTab) #> getID(municTab)
 #Erro em getID(municTab) : Not implemented yet #Erro em getID(municTab) : Not implemented yet
- 
  
 ## 1. adicionando à tabela já existente: ## 1. adicionando à tabela já existente:
-## (o que tentei a seguir nao funcionou, tem que ser coluna a coluna...???​) +## 1.1 Adicionar/​atualizar ​todas as colunas de uma só vez: updateColumns() 
- +## Erros aconteciam abaixo qdo usava-se o nome errado da variável id: 
-## 1.1 tentando adcionar ​todas as colunas de uma só vez:+## a msg poderia ser informativa?​ 
 +## msg de erro era: 
 +## Erro em if (poskey != 1) { : argumento tem comprimento zero
  
-## CODIGO foi usado como ID para munic no addShape() portanto uando aqui tb para figado 
 all.equal(municDt$CODIGO,​figado$id) all.equal(municDt$CODIGO,​figado$id)
 municTab municTab
-updateColumns(municTab, ​figado) ​## nao funcionou mas pelo vignette aRTtable deveria... +names(figado)
-## Erro em if (poskey != 1) { : argumento tem comprimento zero+
  
 +## note que para updateColumns() a doc diz que o id deve estar na primeira coluna do data-frame!
 +## o ID deve ter o mesmo nome da tabela original (CODIGO neste exemplo)
 +## CODIGO foi usado como ID para munic no addShape() portanto usando aqui tb para figado
 +names(figado)[1] <- "​CODIGO"​
 +updateColumns(municTab,​ figado)
  
-## 1.2 adicionando as colunas uma a uma... ​(arrrgh) +## 1.2 alternativa ​adicionando as colunas uma a uma...  
-names(figado) +## note que o ID dev e ser chamado de CODIGO que foi definido anteriormente 
-for(cc in names(figado)[3:​4]){ +#names(figado) 
-  tmp <- data.frame(id=figado$id, data = figado[,​cc]) +#for(cc in names(figado)[3:​4]){ 
-  names(tmp)[2] <- cc + tmp <- data.frame(CODIGO=figado$id, data = figado[,​cc]) 
-  print(head(tmp)) + ​names(tmp)[2] <- cc 
-  createColumn(municTab,​ cc, type="​int"​) + ​print(head(tmp)) 
-  updateColumns(municTab,​ tmp) + ​createColumn(municTab,​ cc, type="​int"​) 
-} + ​updateColumns(municTab,​ tmp) 
-## mesmo erro que acima: +#}
-##Erro em if (poskey != 1) { : argumento tem comprimento zero +
  
 ## 2. adicionando como uma nova tabela ## 2. adicionando como uma nova tabela
 +## 2.1 usando importTable()
 +figadoTab1 <- importTable(l.pr,​ "​FigadoCancer",​ id="​id",​ figado)
 +l.pr
  
-## 2.usando creatTable()+## 2.usando creatTable()
 figadoTab <- createTable(l.pr,​ "​CancerFigado"​) figadoTab <- createTable(l.pr,​ "​CancerFigado"​)
 figadoTab figadoTab
Linha 160: Linha 160:
 updateColumns(figadoTab,​ figado) updateColumns(figadoTab,​ figado)
 figadoTab figadoTab
- 
-## usando importTable() 
-figadoTab1 <- importTable(l.pr,​ "​FigadoCancer",​ id="​id",​ figado) 
- 
 l.pr l.pr
  
Linha 169: Linha 165:
 ##    A segunda simplesmente encapsula os comandos da primeira em uma unica chamada? ##    A segunda simplesmente encapsula os comandos da primeira em uma unica chamada?
  
 +## removendo tabela(s):
 +## o seguinte não funcionou:
 +deleteTable(l.pr,​ "​FigadoCancer"​)
 +#Erro em function (classes, fdef, mtable) ​ : 
 +#  unable to find an inherited method for function "​deleteTable",​ for signature "​aRTlayer"​
 +
 +## e o seguinte deu um crash!
 +#​deleteTable(db,​ "​FigadoCancer"​)
  
 ## ##
 ## Layer 2: dados geoquímicos ## Layer 2: dados geoquímicos
 ## ##
- 
 ## Q: ## Q:
 ## Pedro, aqui estou tentando usar 3 formas diferentes de colocar ## Pedro, aqui estou tentando usar 3 formas diferentes de colocar
 ## o dado de pontos no banco, mas as baseadas im importSpData() ## o dado de pontos no banco, mas as baseadas im importSpData()
 ## estao dando problemas ## estao dando problemas
- 
  
 ## ##
Linha 191: Linha 193:
 ## convertendo teores para SpatialPointsDataFrame ## convertendo teores para SpatialPointsDataFrame
 names(teores) names(teores)
 +teores$ID <- as.character(1:​nrow(teores))
 coordinates(teores) <- c("​LONGITUDE","​LATITUDE"​) coordinates(teores) <- c("​LONGITUDE","​LATITUDE"​)
-teores$ID <- as.character(1:​nrow(teores)) 
 ## Q: como atribuir projeção ao Layer criado com importSpData()?​ O seguinte é válido? ## Q: como atribuir projeção ao Layer criado com importSpData()?​ O seguinte é válido?
 attr(teores,​ "​proj4string"​) <- CRS(proj) attr(teores,​ "​proj4string"​) <- CRS(proj)
-l1.geoq <- importSpData(db,​ teores, "​GQ1"​)+l1.geoq <- importSpData(db,​ teores, "GQ1", "geoq1")
 ## MSG DE ERRO: ## MSG DE ERRO:
 #Erro em .aRTcall(object,​ "​cppUpdateColumns",​ colnames = colnames(data), ​ :  #Erro em .aRTcall(object,​ "​cppUpdateColumns",​ colnames = colnames(data), ​ : 
Linha 205: Linha 207:
 ## ##
 teores <- read.table("​aguafix.csv",​ head=T, sep=";"​) teores <- read.table("​aguafix.csv",​ head=T, sep=";"​)
-teores$ID <- as.character(1:nrow(teores)+names(teores)[1] <- "​ID"​ 
-#ll <- SpatialPoints(teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​ proj=CRS(proj))+teores$ID <- as.character(teores$ID
 +##ll <- SpatialPoints(teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​ proj=CRS(proj))
 lldf <- SpatialPointsDataFrame(coords=teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​ lldf <- SpatialPointsDataFrame(coords=teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​
                                ​data=teores[,​-(4:​5)],​                                ​data=teores[,​-(4:​5)],​
                                proj = CRS(proj))                                proj = CRS(proj))
-l12.geoq <- importSpData(db,​ lldf, "​GQ2"​)+l12.geoq <- importSpData(db,​ lldf, "GQ2", "geoq2")
 #Erro em .aRTcall(object,​ "​cppUpdateColumns",​ colnames = colnames(data), ​ :  #Erro em .aRTcall(object,​ "​cppUpdateColumns",​ colnames = colnames(data), ​ : 
 #  Could not update the table #  Could not update the table
Linha 220: Linha 223:
 teores <- read.table("​aguafix.csv",​ head=T, sep=";"​) teores <- read.table("​aguafix.csv",​ head=T, sep=";"​)
 coordinates(teores) <- c("​LONGITUDE","​LATITUDE"​) coordinates(teores) <- c("​LONGITUDE","​LATITUDE"​)
-teores$ID <- as.character(1:nrow(teores))+names(teores)[1] <- "​ID"​ 
 +teores$ID <- as.character(teores$ID)
 attr(teores,​ "​proj4string"​) <- CRS(proj) attr(teores,​ "​proj4string"​) <- CRS(proj)
  
Linha 234: Linha 238:
 ## Forma 4: (Funcionou, mas...) ## Forma 4: (Funcionou, mas...)
 ## ##
-## alternativa a importSpData() seria fazer passo a passo 
 teores <- read.table("​aguafix.csv",​ head=T, sep=";"​) teores <- read.table("​aguafix.csv",​ head=T, sep=";"​)
-teores$ID <- as.character(1:nrow(teores))+names(teores)[1] <- "​ID"​ 
 +teores$ID <- as.character(teores$ID)
 lldf <- SpatialPointsDataFrame(coords=teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​ lldf <- SpatialPointsDataFrame(coords=teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​
                                ​data=teores[,​-(4:​5)],​                                ​data=teores[,​-(4:​5)],​
Linha 246: Linha 250:
 l4.geoq l4.geoq
 ## ele nao aceitou usar o nome da tabela "​Elementos"​ já usado acima ## ele nao aceitou usar o nome da tabela "​Elementos"​ já usado acima
-##  mesmo etando ​em outro layer !!!!!!+##  mesmo estando ​em outro layer !!!!!!
 tb4.geoq <- importTable(l4.geoq,​ "​Elem",​ id="​ID",​ lldf) tb4.geoq <- importTable(l4.geoq,​ "​Elem",​ id="​ID",​ lldf)
 l4.geoq l4.geoq

QR Code
QR Code software:art:scripts:scriptgm-pj (generated for current page)