Tabela de conteúdos

Minhas propostas

Proposta A

A função irá tratar variáveis quantitativas coletadas ao longo do tempo, em taxas de amostragem diferentes e analisar a existência de correlação entre esses dois dados, sem o efeito do tempo, retornando gráficos exploratórios. Em maior detalhe, a função irá:

Objetos e argumentos de entrada da função:

x - vetor numérico quantitativo

x.horario - vetor contendo os horários de amostragem da variável x

y - vetor numérico quantitativo

y.horario - vetor contendo os horários de amostragem da variável y

resume.por=“sum”,“mean” - argumento que define o método a ser utilizado para igualar as taxas de amostragem (respectivamente: soma ou média dos dados coletados mais frequentemente).

modelos=“p1”,“p2”,“p3”,“fs”- argumento para selecionar os modelos preliminares a serem comparados para se obter os modelos finais da variação de x e y em relação ao tempo (respectivamente: polinômio de primeiro grau (y=a+bx), polinômio de segundo grau (y=a+bx+cx^2), polinômio de terceiro grau (y=a+bx+cx^2+dx^3), função senoide (y=sin(x)))

tabela=“” - argumento que determina como retornar os dados tratados. Se não especificada, a função retornará uma tabela nova. Se o usuário especificar um data frame, os dados serão adicionados como colunas novas no data frame já existente.

sobrep - argumento lógico. Se TRUE, serão sobrepostos os gráficos de linha da variação de x e y em relação ao tempo

xlab=“x” - legenda a ser colocada no eixo da variável x nos gráficos

ylab=“y” - legenda a ser colocada no eixo da variável y nos gráficos

Objeto de saída:

lista com o sumário do modelo linear de y em função de x e tabela contendo os dados tratados.

Gráficos gerados:

Proposta B

A função irá calcular o melhor caminho de um ponto A até B, com possibilidade de paradas, sendo que os pontos estão dentro de um espaço delimitado e a posição deles neste espaço se altera com o tempo.

Em maior detalhe, a função irá:

Objetos e argumentos de entrada da função:

posx - data frame onde a primeira coluna contém os nomes dos pontos e as colunas seguintes, a posição dos pontos no eixo x, em cada horário amostrado, com taxa de amostragem constante.

posy - data frame onde a primeira coluna contém os nomes dos pontos e as colunas seguintes, a posição dos pontos no eixo y, em cada horário amostrado, com taxa de amostragem constante.

p.partida - caracter correspondente ao nome do ponto de partida

ordem.fixa - argumento lógico. Se FALSE, a ordem dos pontos de parada é escolhida de forma a otimizar o tempo do deslocamento

p.parada - lista de caracteres correspondendo aos nomes dos pontos de parada. Se ordem.fixa=TRUE, colocar os pontos na ordem desejada.

p.destino - caracter correspondente ao nome do ponto de destino

t.partida - valor numérico que indica a coluna de dados correspondente ao horário de partida

vel - valor numérico indicando a velocidade do deslocamento, no formato: unidade de x e y/taxa de amostragem

Objeto de saída: data frame com os pontos determinados pelo usuário, posição x e y de cada ponto, o horário de chegada em cada parada e ponto final, tempo de espera até o ponto aparecer na posição esperada.

Gráfico gerado: plot xy ilustrando a posição dos pontos no espaço. Conterá os pontos determinados pelo usuário, com nome e horário, e uma linha indicando o caminho do ponto inicial até o ponto final

Comentários Danilo (gruingas@gmail.com)

Milene, ambas as suas propostas são interessantes, mas o plano B é MUITO mais legal. O plano A é, no final das contas, uma função que automatiza um tipo de análise. É relativamente comum as pessoas fazerem esse tipo de função, mas é uma coisa pouco desafiadora e de aplicação restrita, afinal, quem mais vai fazer exatamente este mesmo tipo de análise?

Já seu plano B é super desafiador e interessante, a questão é: você sabe por onde começar a escrever esse tipo de algoritmo? Se a resposta for positiva, é só prosseguir. Se for negativa, você pode prosseguir com o plano A ou tentar montar uma versão menos complicada do plano B. Mas, se você prosseguir com o plano B, explique melhor no seu help como tem que ser esses data.frames que a função recebe, porque não ficou muito claro pra mim o que tem nesses data.frames além das coordenadas x e y.

Olá Milene, Sobre o plano A, concordo com o Danilo. Tome cuidado para não ser algo muito específico ao seu caso e à sua estrutura de dados. Isto tem muito mais cara de script do que de função. Como função acaba tendo uma aplicação restrita demais. Sobre o plano B, é mesmo muito mais legal! O desafio de implementar o algoritmo é algo bastante interessante e que eu recomendo que você siga em frente. — Sara