[R-br] recorte

Tito Conte tito.conte em gmail.com
Sexta Janeiro 18 13:26:35 BRST 2013


Caso você quira fazer um recorte no mapa, faça uma máscara

Criar uma matriz de zero e um (onde zero é o que você quer omitir e 1 os
seus dados), através de uma equação da forma geométrica que você deseja

multiplique essa máscara pelos seus dados, e plote novamente

segue um exemplo abaixo de função que remove as bordas de um circulo

mask <- function (dados){
  # tamanho da coluna
  Y=c(1:dim(dados)[1])
  # calcular o raio
  r=floor(length(Y)/2)
  # centro do círculo
  cp = round(length(Y)/2,0)
  # matriz com zeros
  TT=matrix(0,nrow=dim(dados)[1],ncol=dim(dados)[2])
  # fazer uma máscara de um e zero
  for(X in c(1:dim(dados)[2])){
    # calcula o raio de todos os Y e X com dados
    R=sqrt((X-cp)^2+(Y-cp)^2)
    #o maior valor do raio do circulo
    zeros=which(R>=r)
    # remove os pontos de fora do circulo
    TT[X,-zeros]=1
  }
  return(TT)
}

aplicando aos meus dados fica

dados.recortados<-dados*mask(dados)

espero ter ajudado



Tito Conte



2013/1/18 Tito Conte <tito.conte em gmail.com>

> você pode colocar NA nos pontos que estão interligados
>
> suponha o seguinte: duas áreas limitadas por quadrados
>
> a=c(1,1,3,3,1,4,4,5,5,4)
> b=c(2,4,4,2,2,6,7,7,6,6)
> f=matrix(c(a,b),ncol=2)
> plot(f,type='l')
>
> # caso vc queira  remover a linha basta adicionar um NA
>
> a=c(a[1:5],NA,a[6:10])
>  b=c(b[1:5],NA,b[6:10])
>  f=data.frame(a,b)
> plot(f,type='l')
>
> Seria isso?
>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130118/c31ff820/attachment.html>


Mais detalhes sobre a lista de discussão R-br