Í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
Mestranda em Oceanografia Biológica, Instituto Oceanográfico, USP.
Minha tese de mestrado tem como objetivo estudar a reprodução do robalo-peva, Centropomus parallelus, estimando comprimentos e idades de maturação gonadal de ambos os estados morfo-fisiológicos (machos e fêmeas funcionais) e de inversão sexual de forma a subsidiar o manejo pesqueiro e contribuir para a preservação da espécie. Orientada pela professora Dra. June Ferraz Dias, responsável pelo laboratório de Ecologia da Reprodução e Recrutamento de Organismos Marinhos (ECORREP).
Página de exercícios resolvidos: Exercícios
Na ciência oceanográfica frequentemente trabalhamos com dados não coletados por nós mesmos, devido aos elevados custos de saídas de campo e cruzeiros oceanográficos. Por este motivo, muitas vezes a qualidade do conjunto de dados não é a que esperamos ou gostaríamos. Durante as coletas, as informações de cada estação oceanográfica são anotadas manualmente em fichas e posteriormente digitadas para planilhas Excel. Nestas etapas são bastante comuns erros de anotação ou digitação, em virtude de condições do mar (e consequentemente, indisposição física do responsável pela ficha), qualidade de caligrafia do responsável pela ficha, ou até mesmo esbarrar em teclas durante a digitação. As coordenadas de cada estação oceanográfica são indispensáveis e imprescindíveis para posterior análise de dados, e não é incomum nos depararmos com coordenadas erradas que indicam estações oceanográficas no continente, do outro do oceano ou até mesmo em outro oceano.
A ideia da função insere-se neste contexto, de forma a operacionalizar e facilitar a conferência de um conjunto de coordenadas geográficas. Assim, a função lê um dataframe inserido, e compara com as coordenadas de linha de costa mundial de um pacote (Ocedata) ou com um shapefile inserido na função, com opcional de mapa dos pontos de coleta.
> datafile
= dataframe com coordenadas geográficas (latitude, longitude em graus)
> base
= logical. Default é TRUE
, e usa como base os continentes do pacote Ocedata
. Se FALSE
, deve haver fonte.
> fonte
= shapefile de fonte a ser conferida. (só existe se base
é FALSE)
> mapa
= default é FALSE
. Se TRUE
, mostra mapa dos pontos de coleta.
> datafile
é dataframe de 2 colunas com “latitude” na primeira (com range entre -90 e +90) e “longitude” na segunda (com range entre -180 e +180). Se não, imprime erro “Datafile não está no formato correto, verifique no Help.”
> fonte
só existe se base é FALSE. Se inserir fonte com outra base TRUE, imprime erro “fonte só é parâmetro se base é FALSE”
> pares de coordenadas que não estão contidas na base em um dataframe.
ocedata
e sp
)base
== TRUE:cline
cline
estão separados por NA
- e guarda em uma lista de listas chamada cont
com um loop baseado no número de NAs (com wich(is.na())
)over
)fora
os pares de coordenadas que estão fora dos continentes.base
== FALSEft
e guarda os pares de coordenadas ft
e verifica se os pontos de datafile estão dentro do polígonofora
os pares de coordenada que estão fora da fontemapa
==TRUEfora
fora
Comentários Lucas Camacho
Achei essa sua ideia simples e tem uma certa generalidade, pois como você mesmo disse na descrição existem várias fontes de erro na hora da coleta e ter uma forma de arrumar isso automaticamente é interessante. Porém eu tenho um comentário e uma dúvida (a dúvida é porque eu sou leigo em coleta de dados oceanográficos mesmo)
Todos sabemos que precisamos ingerir idealmente certa quantidade de água diariamente. No entanto, tal quantidade varia conforme idade? Sexo? Intensidade de atividade física? Tendo isto em vista, a função tem como proposta definir a quantidade ideal de água consumida diariamente para um usuário, e período de consumo de diferentes quantidades, a partir de informações dadas: idade, sexo, intensidade, período e duração de atividade física realizada. Tendo como referência “Food and Nutrition Board, Institute of Medicine.Dietary Reference Intakes for Water, Potassium, So-dium, Chloride, and Sulfate. Washington, DC: Na-tional Academies Press; 2004.” Disponível no site http://www.nap.edu/books/0309091691/html.
Como base são considerados os níveis adequados de insumo (AI) definidos por sexo e idade (Tabela 1), e a partir dos dados usados para modelo (gráfico retirado da referência) de taxas de perda de água por nível de atividade física (baseado em calorias perdidas) em diferentes temperaturas, em mL/h. Estes dados estão disponíveis no Anexo C - Tabela C-1 (https://www.nap.edu/read/10925/chapter/14#489) da referência previamente citada.
Tabela 1: níveis adequados de insumo por dia
Gráfico do modelo de taxa de perda de água por nível de atividade física e temperatura.
> idade
= idade do usuário (número inteiro > 0)
> sexo
= sexo do usuário (caractere: “F” - Female, ou “M” - Male)
> atv.fisica
= intensidade de atividade física diária (caracteres: “sedentario”, “baixa”, “media” ou “alta”)
> per
= período de atividade física (caracteres: “n”, “manha”, “tarde”, ou “noite”)
> dur
= duração média da atividade física em horas (numérica > 0)
> idade
é número inteiro maior que zero? Se não, imprime erro “Idade deve ser número inteiro maior que zero.”
> sexo
é caractere “F” ou “M”? Se não, imprime erro “Sexo deve ser F para mulheres (female) ou M para homens (male).”
> atv.fisica
é “sedentario”, “baixa”, “media” ou “alta”? Se não, imprime erro “atv. fisica deve ser uma das categorias: sedentario, baixa, media, ou alta.”
> dur
é númerico >= 0? Se não, imprime erro “dur deve ser o tempo de duração média da atividade física em horas, número maior que zero. Se atv.fisica for sedentario, dur será zero.”
> se atv.fisica
é “sedentario” e per
não é “n” ou dur
> 0, imprime warning “Para esta categoria de intensidade de atividade física, o período não é considerado (per=“n”
) e duração é dada como zero (dur=0
).”
> Quantidade total de água a ser consumida diariamente, e a composição em cada um dos períodos do dia (manhã, tarde e noite).
base
de dimensões [8,2]base
, guarda em objeto AI
, a quantidade de água a ser consumida (independente de atividade física)if
), define a equação a ser usadamedia.add
dur
por media.add
para obter a média de mL perdidos no tempo de duração da atividade física, e guarda em objeto add.atv
AI
com add.atv
em objeto chamado total
per.tot
de dimensões [1,4] com colnames (“manhã”, “tarde”, “noite” e “total”)per.tot[1,4] ← total
per.tot[1,1] = per.tot[1,2] = per.tot[1,3] = AI/3
(divide o consumo diário independente de atividade física pelos períodos)per.tot
, add.atv
(adicional por atividade física) no período de atividade física definido pelo usuárioper.tot
Comentários Lucas Camacho
Porém, você já tem um pseudo-código para as duas, parece que ambas a ideias estão estruturadas e você já possui uma noção de como fazer. Com isso, acho que as duas propostas estão aptas a serem o seu trabalho final, mas eu ficaria com a primeira pela simplicidade dela em relação a segunda.
Qualquer dúvida ou desespero pode me mandar e-mail que eu respondo quando possível (lucas.camacho@usp.br)
Abração