Programa R para Biologia da Conservação
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Problemas com o gráfico da função média e desvio

3 participantes

Ir para baixo

Problemas com o gráfico da função média e desvio Empty Problemas com o gráfico da função média e desvio

Mensagem por Nunes Sex Nov 10, 2017 10:04 pm

Boa noite Prof. Marcos e colegas,
Estou com problemas para rodar a função do gráfico de média com desvio, referente a atividade final do módulo 2.
Consegui fazer o gráfico com o código que o Professor fez, porém quando tentei com a função o R deu à seguinte msg:

> library(sciplot)
>
> source("Função media e desvio.R") #para chamar o arquivo da função
The following objects are masked from dados (pos = 4):

   Área, Riqueza
>
> graf.media.desvio(Área, Riqueza, "Área", "Riqueza")

Problemas com o gráfico da função média e desvio Media_10

O seguinte gráfico é apresentado.
Após o library(sciplot) quando tento rodar o comando source("Função media e desvio.R") ele abre uma janela de seleção e eu selecionei, novamente a pasta que estou trabalhando, assim como fiz para setwd(choose.dir(), na sequência ele mostra essa mensagem. Resolvi insistir e tentei rodar o gráfico, com o comando graf.media.desvio(Área, Riqueza, "Área", "Riqueza") ... ele faz o gráfico, mas com os dados do arquivo "pratica1.txt"  como se ele não substituísse na função os novos dados do arquivo "dados4.txt".
Fico no aguardo de alguma orientação, para descobrir o que estou fazendo de errado.
Obrigada!!
Abraços,
Ilka.

Nunes

Mensagens : 12
Data de inscrição : 11/10/2017

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Drika Sáb Nov 11, 2017 2:23 pm

Olá, Ilka e colegas! Vou tentar dar uma ajuda!
Pelo que entendi até agora, a mensagem de erro "The following objects are masked from..." costuma aparecer quando usamos a função attach() mais de uma vez (é como se o R fizesse 'attach' do 'attach'). Quando isso ocorre, t;) ente usar detach().
Em relação à janela que aparece após o comando source, meu palpite é que o seu script "Função media e desvio.R" não está na mesma pasta do script que você está usando para fazer a atividade (talvez o script do gráfico esteja numa pasta sobre o Módulo 2 e o outro script esteja numa pasta de exercícios, por exemplo - este era o meu caso). Se entendi bem, ele só vai funcionar se estiver na mesma pasta. Então, eu sugiro que você copie o script do gráfico e cole uma cópia na mesma pasta do script da atividade. Funcionou comigo!
Tente e depois avise se deu certo! Wink
Abração,
Adriana

Drika

Mensagens : 10
Data de inscrição : 06/10/2017

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Nunes Dom Nov 12, 2017 10:15 am

Bom dia Adriana e colegas,
Infelizmente, ainda não deu certo...
Depois que rodei os comandos básicos de todo script, segui essa sequência:
library(sciplot)
source("Função media e desvio.R") #para chamar o arquivo da função
detach(dados)
graf.media.desvio(Área, Riqueza, "Área", "Riqueza")

Mas não mudou a figura e também coloquei o detach(dados) em várias posições...mas isso também não mudou o resultado. Os arquivos estão todos na pasta do módulo 2. Vídeos, scrits, a planilha, tudo lá ...efim vamos tentando...
Mas muito obrigada por sua ajuda =)
Grande abraço,
Ilka



Nunes

Mensagens : 12
Data de inscrição : 11/10/2017

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Prof. Marcos Seg Nov 13, 2017 4:16 pm

Olá, Ilka e Adriana, tudo bem?

Ilka, acredito que possa existir algo de estranho dentro do código da função. Pode ter sido algum "pedaço" de código fora do lugar que tenha ficado perdido dentro do arquivo da função "Função media e desvio.R".

Para descobrir, faça o seguinte: abra o arquivo da função (como se fosse um script mesmo), e cole tudo dentro dele aqui em uma mensagem. Eu desconfio que uma parte da função pode estar causando o R, e por isso a coisa fica toda confusa, com este erro que é mesmo típico do attach().

Vamos ver o que descobrimos, certo?
Prof. Marcos
Prof. Marcos

Mensagens : 678
Data de inscrição : 23/12/2015
Idade : 42
Localização : Maceió, AL

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Nunes Seg Nov 13, 2017 11:53 pm

Olá Prof. Marcos, tudo bem sim... e vc?

Segue o script, desculpe o excesso de comentários ... é muita coisa nova...

####################################################
#Criando minha primeira função no R
#Ilka Branco Nunes
#07-11-2017

#Uma função normalmente simplifica um código grande

#Nas funções não pode ter espaço. Nesse caso é usual colocar pontos separando
#evitar acento e maiúsculo e minúsculo

#No R tudo o que acontece dentro da função fica entre chaves {}

###############################
#Antes de qualquer coisa:
###############################

setwd(choose.dir()) # Escolher a pasta onde estão os arquivos
dir() #lista os arquivos da pasta
dados<-read.table("pratica1.txt",h=T) #Lê os dados do arquivo  
attach(dados) #reconhece os nomes das colunas nos dados
summary(dados) #resumo dos dados

###############################

#Função que cria gráfico de média com desvio padrão
#Usa como base uma função do pacote sciplot
#não se esqueça de carregar o pacote!!!!

#x é o nome da variável categórica que vc vai usar
# e Y é o nome da variável quantitativa
# nome.do.x é o nome que vc desejana legenda do eixo x, entre ""
# nome.do.y é o nome que vc desejana legenda do eixo y, entre ""

##################################
#Gráfico de média e Desvio padrão:
##################################

library(sciplot) #rodar o pacote antes de fazer a função.

graf.media.desvio<-function(x, y) #escrever entre () quais os argumentos que minha função irá carregar.
 #O usuário precisa inserir na função qual a variável categórica no eixo x e qual a variável quantitativa do eixo y.
 #nesse caso o usuário não escreverá variável x e y ... e sim o nome de cada uma delas.
 
 graf.media.desvio<-function(x, y){
   lineplot.CI(x,y, las=1, xlab="Ambiente", ylab="Área do Fragmento", #substituir ambiente e área por x e y
               type="p",  ci.fun= function(x) c(mean(x)-sd(x), mean(x)+sd(x)))}

#vai rodar no R e nada acontece, porém msg de erro não são informadas.
#testando agora a função:

graf.media.desvio(Ambiente, Área) #Após roda a função acima. A partir desse momento sempre que quiser fazer um
#gráfico de média com desvio padrão não precisa "escrever" o código todo, basta rodar o
#o comando graf.media.desvio(Ambiente, Área)

graf.media.desvio(Ambiente, Riqueza) # testando para outra variável: riqueza de espécies

#################
#Para que a função permita que o usuário possa inserir os nomes das variáveis:

graf.media.desvio<-function(x, y, nome.do.x, nome.do.y){
 lineplot.CI(x,y, las=1, xlab=nome.do.x, ylab=nome.do.y, #substituir ambiente e área por x e y
             type="p",  ci.fun= function(x) c(mean(x)-sd(x), mean(x)+sd(x)))}
#nesse caso nome.do.x será inserido no lugar da legenda do eixo x, que até então era "Ambiente", da mesma forma
# é feito para a legenda do eixo y...trocar "Área do Fragmento" por nome.do.y

#Agora testando pra ver se vai da certo a nova função, agora com os nomes dos eixos x e y
graf.media.desvio(Ambiente, Riqueza, "Ambiente", "Riqueza")

Vamos descobrir!!
Abraços,
Ilka.

Nunes

Mensagens : 12
Data de inscrição : 11/10/2017

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Prof. Marcos Ter Nov 14, 2017 8:59 am

Olá, Ilka.

Todo o script coleado é do arquivo que você chama com o comando source? Se for este o caso, então o problema está mesmo na estrutura do arquivo. Por exemplo, nesta parte:

Código:
###############################
#Antes de qualquer coisa:
###############################

setwd(choose.dir()) # Escolher a pasta onde estão os arquivos
dir() #lista os arquivos da pasta
dados<-read.table("pratica1.txt",h=T) #Lê os dados do arquivo 
attach(dados) #reconhece os nomes das colunas nos dados
summary(dados) #resumo dos dados

###############################

Se você usa o source e depois executa a função criada, ela irá carregar os dados acima, pois este trecho de script está dentro do arquivo carregado, e ele será executado automaticamente quando você executar a função.

Dentro do arquivo que você irá carregar com o source() você deve manter apenas a parte que cria a função (e os comentários, se quiser). Então o arquivo deve ter apenas o trecho onde a função recebe um nome e é descrita entre {}. Os demais comandos, como o teste da função, os dados carregados e tudo mais, não devem entrar, ok?
Prof. Marcos
Prof. Marcos

Mensagens : 678
Data de inscrição : 23/12/2015
Idade : 42
Localização : Maceió, AL

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Prof. Marcos Ter Nov 14, 2017 9:01 am

Só para exemplificar, o arquivo que eu mesmo criei ao gravar aquela aula tem apenas isto dentro dele:

Código:
#Função que cria gráfico de média com desvio padrão
#Usa como base, uma função do pacote sciplot
#Não se esqueça de carregar o pacote!!!

#x é o nome da variável categórica que você vai usar
#y é o nome da variável quantitativa
#nome.do.x é o nome que você deseja no eixo x (coloque entre aspas, ok?)
#nome.do.y é o nome que você deseja no eixo y (também com as aspas, beleza?)


graf.media.desvio<-function(x, y, nome.do.x, nome.do.y){
lineplot.CI(x, y, las=1, xlab=nome.do.x, ylab=nome.do.y,
type="p", ci.fun= function(x) c(mean(x)-sd(x), mean(x)+sd(x)))
}


Aí, para testar, você pode usar este pedaço:

Código:
##Usando a minha primeira função!!!
##Curso do R, Escas, IPÊ e Bocaina
##Marcos Vital

###########################################

setwd(choose.dir()) #Escolhar a pasta onde estão os arquivos

dir() #Lista os arquivos da pasta

dados<-read.table("pratica1.txt", h=T) #Lê os dados do arquivo
attach(dados) #Reconhece os nomes das colunas nos dados

summary(dados) #Resumo dos dados

##############################################

library(sciplot)

source("meu grafico.R")

graf.media.desvio(Ambiente, Riqueza, "Ambiente", "Número de espécies")


Mas perceba que apenas o primeiro trecho de código exemplificado acima deve estar no arquivo que será chamado com o comando source(). O segundo trecho pode ser um script comum, mas não deve ser carregado pelo source, ok?

Avise se conseguir fazer tudo funcionar.
Prof. Marcos
Prof. Marcos

Mensagens : 678
Data de inscrição : 23/12/2015
Idade : 42
Localização : Maceió, AL

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Nunes Qua Nov 15, 2017 11:19 pm

Olá Prof. Marcos,
Deu super certo!!
Muito obrigada,
Abração
Ilka

Nunes

Mensagens : 12
Data de inscrição : 11/10/2017

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Prof. Marcos Sáb Nov 18, 2017 3:42 pm

Que bom, Ilka!
Prof. Marcos
Prof. Marcos

Mensagens : 678
Data de inscrição : 23/12/2015
Idade : 42
Localização : Maceió, AL

https://cantinhodor.wordpress.com/

Ir para o topo Ir para baixo

Problemas com o gráfico da função média e desvio Empty Re: Problemas com o gráfico da função média e desvio

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos