Problemas com a Minha Primeira Função no R!

Ir em baixo

Problemas com a Minha Primeira Função no R!

Mensagem por Leonardo P. A. Resende em Qui Out 26, 2017 11:02 am

Olá Prof. Marcos, tudo bem?

Estou tendo um problema na hora de executar a minha primeira função no R. Como acho complicado descrever qual seria o problema, mesmo porque não estou conseguindo detectar qual é, vou colar aqui as linhas do meu script para que você dê uma olhada e veja o que eu fiz de errado no processo.

?lineplot.CI
fun = function(x) mean(x, na.rm=TRUE)
lineplot.CI(Ambiente, Riqueza, las=1, type="p",
xlab="Ambiente", ylab="Nº de Espécies",
ci.fun= function(x) c(fun(x)-sd(x), fun(x)+sd(x))) #Mudando a medida de dispersão para desvio padrão usando a função lineplot.CI#

#Criando a minha primeira função#

sdmean.graph<-function(x, y){lineplot.CI(x, y, las=1, type="p",
xlab="Ambiente", ylab="Nº de Espécies",
ci.fun= function(x) c(fun(x)-sd(x), fun(x)+sd(x)))}
sdmean.graph(Ambiente, Riqueza) #Executando a função
sdmean.graph(Ambiente, Área) #Problema com o nome dos eixos

#Corrigindo a função
sdmean.graph<-function(x, y, xname, yname){lineplot.CI(x, y, las=1, type="p",
xlab= xname, ylab= yname,
ci.fun= function(x) c(fun(x)-sd(x), fun(x)+sd(x)))}
sdmean.graph(Ambiente, Área, "Ambiente", "Área") #Executanto a função!

Até aqui tudo corre bem. Ai eu salvo o script da nova função, fecho o R e abro novamente para executar:

#Testando a função!#
dir()
atividade1<-read.table("pratica1.txt", header= T)
attach(atividade1)
library(sciplot)
source("sdmean.graph.R")
sdmean.graph(Ambiente, Área, "Ambiente", "Área")

Veja o aparece no console...

atividade1<-read.table("pratica1.txt", header= T)
> attach(atividade1)
> library(sciplot)
> dir()
[1] "Atividade proposta do módulo 1" "bichinhos.txt"
[3] "dados necessários" "Exemplo1.txt"
[5] "Exemplo1.xlsx" "Módulo 1.R"
[7] "Módulo 2.R" "pratica1.txt"
[9] "resultado da aula" "Script de leitura de dados.R"
[11] "Script modulo2.R" "sdmean.graph.R"
> source("sdmean.graph.R")
> sdmean.graph(Ambiente, Área, "Ambiente", "Área")
Show Traceback

Rerun with Debug
Error in fun(x) : could not find function "fun"
>

O que eu fiz de errado?!

Abraços!

Leonardo P. A. Resende

Mensagens : 5
Data de inscrição : 03/10/2017

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Problemas com a Minha Primeira Função no R!

Mensagem por Prof. Marcos em Qua Nov 01, 2017 4:37 pm

Olá, Leonardo, tudo bem?

Acho que é coisa bem simples! Veja só, você criou a função logo abaixo da parte que aparece:

#Criando a minha primeira função#

Foi isso mesmo? Se foi, então o seu script não incluiu uma linha fundamental:

fun = function(x) mean(x, na.rm=TRUE)

Sem esta linha, quando a sua função chega nesta parte:

ci.fun= function(x) c(fun(x)-sd(x), fun(x)+sd(x)))

Ela não "sabe" o que é fun. Então basta adicionar aquela linha lá em cima que deve tudo funcionar, ok?

Mas qualquer coisa vamos nos falando aqui, e se precisar cole exatamente o que é o script do seu arquivo de função aqui, para que eu possa conferir.

Abraços!
avatar
Prof. Marcos

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

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum