Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
Mestrando em Ecologia, Instituto de Biociências, USP.
O título de minha dissertação é “O que faz de um indivíduo um invasor? Atributos individuais, formas de manejo e determinantes ambientais associados à invasão de remanescentes de Mata Atlântica por cachorros domésticos”, com orientação da professora Renata Pardini.
O trabalho de campo para coleta dos dados já está em andamento, e como a internet por aqui não é das melhores, vou deixar pra aprimorar esta página quando estiver em São Paulo.
A função deverá realizar uma buscar em um dataframe a partir das coordenadas fornecidas pelo usuário, retornando um subset com as linhas cujas coordenadas se encontrem em um raio de até x km daquele ponto, sendo x um valor apresentado pelo usuário. Pretendo utilizar o pacote “sp” para auxiliar no cálculo das distâncias entre as coordenadas.
Cada linha do dataframe representa um objeto observado, com sua localização e características associadas. No caso específico, em que os objetos são cães, essas características podem ser o sexo, a idade, e informações sobre castração e vacinação, entre outras. Adicionalmente tais características podem ser incluídas como argumentos na busca, servindo como um filtro para o subset que retornará como resultado.
Iscas são utilizadas em diversos trabalhos de amostragem de fauna, com o intuito de atrair indivíduos para as armadilhas. Porém, ao longo dos dias elas são consumidas e apodrecem, podendo ter seu efeito reduzido.
A função deverá realizar uma análise exploratória dos dados e uma ANOVA multifatorial, tendo os dias como variáveis independentes (fatores) e o número de registros como variável resposta, a fim de verificar se existe uma tendência de perda do efeito das iscas. A análise exploratória será composta por um sumário, um histograma e boxplots.
Os dados devem ser inseridos em forma de dataframe, em que cada linha representa um ponto de captura e cada coluna representa o número de registros em um dia.
Oi, Vinícius!
Então, as suas propostas estão um pouco simples e você precisa descrever mais detalhadamente como as suas funções vão funcionar:
- Na proposta A, como você vai calcular as distâncias entre as coordenadas? E o que você chama de características associadas do seu objeto observado? Se essas características entrarem como argumentos da sua função, elas servirão para você filtrar os dados do seu dataframe?
- Na proposta B, que informações exatamente você pretende usar para dizer se existe mesmo ou não um efeito de perda do efeito das iscas? Seria interessante, provavelmente, você incluir algum teste estatístico na sua função que apoie a sua análise.
— Viviane Santos 2015/03/24 14:43
Comentários Vitor Rios
# Seleciona a partir de um conjunto de dados fornecido pelo usuário um subconjunto # que contenha os indivíduos que se encontrem a uma dada distância de um determinado # ponto, opcionalmente respeitando critérios de sexo, castração e idade. seleciona <- function(data,x,y,km,sexo,castracao,idade) { # confere se x foi fornecido pelo usuário e o avisa em caso negativo, mas dá sequência à função if(missing(x)){a=data; cat("Aviso: não foram fornecidas as coordenadas do ponto de referência ou a distância limite.\n\n")} else{ # se x foi fornecido # confere se y foi fornecido pelo usuário e o avisa em caso negativo, mas dá sequência à função if(missing(y)){a=data; cat("Aviso: não foram fornecidas as coordenadas do ponto de referência ou a distância limite.\n\n")} else{ # se y foi fornecido # confere se km foi fornecido pelo usuário e o avisa em caso negativo, mas dá sequência à função if(missing(km)){a=data; cat("Aviso: não foi fornecida a distância limite.\n\n")} else{ # se km foi fornecido # carrega o pacote "sp" library(sp) # transforma x e y em matriz z=matrix(c(x,y),nrow=1) # calcula a distância entre o ponto de cada linha do data.frame e o ponto de referência fornecido pelo usuário dist=spDistsN1(as.matrix(data[,2:3]),z,longlat=TRUE) # cria uma coluna no data.frame com o vetor dist data$dist=dist # seleciona as linhas cujas distâncias para o ponto de referência sejam menores que 'km' a=subset(data,dist<km) } } } # confere se foi selecionada alguma opção para o argumento 'sexo' if(missing(sexo)){b=a} # se não, ignora o argumento 'sexo' e passa ao argumento 'castracao' else{ # se sim # seleciona as linhas cujos indivíduos sejam fêmeas if(sexo=="femea"){b=subset(a,sexo==0)} # seleciona as linhas cujos indivíduos sejam machos if(sexo=="macho"){b=subset(a,sexo==1)} # seleciona as linhas de cujos indivíduos não se sabe o sexo if(sexo=="?"){b=subset(a,sexo==9)} # interrompe a função se o valor escolhido para o argumento for diferente dos disponíveis if(sexo!="femea"&sexo!="macho"&sexo!="ns") stop("Verifique o valor do argumento 'sexo'") } # confere se foi selecionada alguma opção para o argumento "cast" if(missing(castracao)){d=b} # se não, ignora o argumento 'castracao' e passa ao argumento 'idade' else{ # se sim # seleciona as linhas cujos indivíduos não sejam castrados if(castracao=="nao"){d=subset(b,castracao==0)} # seleciona as linhas cujos indivíduos sejam castrados if(castracao=="sim"){d=subset(b,castracao==1)} # seleciona as linhas cujos indivíduos não se sabe se foram castrados if(castracao=="ns"){d=subset(b,castracao==9)} # interrompe a função se o valor escolhido para o argumento for diferente dos disponíveis if(castracao!="nao"&castracao!="sim"&castracao!="ns") stop("Verifique o valor do argumento 'castracao'") } # confere se foi selecionada alguma opção para o argumento "idade" if(missing(idade)){e=d} # se não, ignora o argumento 'idade' e passa aos resultados da função else{ # se sim # seleciona as linhas cujos indivíduos tenham menos que 1 ano if(idade=="jovem"){e=subset(d,idade<1)} # seleciona as linhas cujos indivíduos tenham 1 ano ou mais if(idade=="adulto"){e=subset(d,idade>=1&idade!="ns")} # interrompe a função se o valor escolhido para o argumento for diferente dos disponíveis if(idade!="jovem"&idade!="adulto") stop("Verifique o valor do argumento 'idade'") } # se nenhum indivíduo se enquadrar na busca if(dim(e)[1]==0) {cat("Nenhum resultado foi encontrado.")} else{ # se algum indivíduo se enquadrar na busca # retorna as linhas do data.frame que preenchem todos os requisitos cat("Foram encontrados "); cat(dim(e)[1]); cat(" resultados.\n\n") # retorna as linhas do data.frame que preenchem todos os requisitos return(e) } }
seleciona package:nenhum R Documentation Seleção de indivíduos sob critérios a serem definidos pelo usuário. Description: Seleciona, a partir de um conjunto de dados fornecido pelo usuário, um subconjunto que contenha indivíduos que se encontrem a uma dada distância de um determinado ponto, opcionalmente respeitando critérios de sexo, castração e idade. Usage: seleciona(data,x,y,km,sexo,castracao,idade) Arguments: data Data.frame contendo methods/html/as.html">as informações sobre os indivíduos. x Valor numérico: latitude do ponto de referência selecionado, em graus decimais. y Valor numérico: longitude do ponto de referência selecionado, em graus decimais. km Valor numérico: distância limite da localização do indivíduo ao ponto de referência, em quilômetros. sexo Sexo dos indivíduos a serem selecionados. Valores possíveis: 'femea', para indivíduos fêmeas, 'macho', para machos, e 'ns', para quando o sexo é desconhecido. castracao Situação dos indivíduos a serem selecionados quanto à castração. Valores possíveis: 'sim', para indivíduos castrados, 'nao', para indivíduos não castrados, e 'ns', para quando não se sabe se o indivíduo é castrado. idade Faixa etária dos indivíduos a serem selecionados. Valores possíveis: 'jovem', para indivíduos menores de 1 ano, e 'adulto', para indivíduos com 1 ano ou mais. Details: É necessário ter o pacote 'sp' instalado. Se usado o sistema de localização, a latitude e longitude devem estar presentes no data.frame respectivamente na segunda e terceira colunas, em formato de graus decimais. Se os argumentos 'sexo', 'castracao' e 'idade' forem usados, methods/html/as.html">as informações referentes a eles devem estar presentes no data.frame sob colunas de mesmo nome. Value: Retorna um subset do data.frame, contendo methods/html/as.html">as linhas referentes aos indivíduos que se enquadram nos critérios definidos pelo usuário. Author: Vinicius Leonardo Biffi vinicius.biffi@usp.br Examples: plan <- read.csv2("planilha.csv", as.is=T) seleciona(plan,idade="jovem") plan <- read.csv2("planilha.csv", as.is=T) seleciona(plan,-22.964944,-46.208889,0.9,"femea","sim","adulto")
Arquivos