[R-br] Múltiplas funções em uma única função [RESOLVIDO]

ASANTOS alexandresantosbr em yahoo.com.br
Sexta Janeiro 15 14:02:58 BRST 2016


Pessoal, o problema foi resolvido, segue solução:


##Banco de dados artificial
who<-rep(c("JOSE","CARLOS"),40)
dates<-rep(as.Date(c("2007-06-22", "2004-02-13")),40)
var1<-rnorm(80)
tableFE<-data.frame(who, dates,var1)
head(tableFE)


MySummary<-function(x, db=tableFE){
people<-function(x){
      x<-NULL
      results <- x
      x<-unique(db[,1])
      results <- x
      results
}
TIME<-function(x){
      x<-NULL
      minT<-min(db[,2])
      maxT<-max(db[,2])
      results <- x
      x<-cbind(minT,maxT)
      colnames(x)<-c("start","end")
      results <- x
      results
}
MD<-function(x){
    MD<-mean(db[,3])
}

result<-list(people(x),TIME(x),MD(x))
return(result)
}

MySummary(db=tableFE)##

-- 
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722
Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
======================================================================

Em 15/01/2016 07:47, ASANTOS escreveu:
> Prezados Listeiros,
>
>
>             Gostaria de criar uma função com múltiplas funções em seu 
> interior, no meu caso gostaria de criar uma função denominada 
> MYsummary, com três funções no interior dela, sendo que à partir de 
> banco de dados artificial:
>
> ##Banco de dados artificial
> who<-rep(c("JOSE","CARLOS"),40)
> dates<-rep(as.Date(c("2007-06-22", "2004-02-13")),40)
> var1<-rnorm(80)
> tableFE<-data.frame(who, dates,var1)
> head(tableFE)
>
>         Tenho uma primeira função que identifica o objeto who, ou 
> seja, quem são as pessoas:
>
> ## Função Identificadora da pessoa
> people<-function(x, db = tableFE) {
>      x<-NULL
>      results <- x
>      x<-unique(db[,1])
>      results <- x
>      results
> }
> PER<-people(db = tableFE)
> #--#
> print(PER)
>
>       A segunda função me fornece o período da coleta de dados:
>
> ## Função do período
> timeFE<-function(x, db = tableFE) {
>      x<-NULL
>      minT<-min(db[,2])
>      maxT<-max(db[,2])
>      results <- x
>      x<-cbind(minT,maxT)
>      colnames(x)<-c("start","end")
>      results <- x
>      results
> }
> TIM<-timeFE(db = tableFE)
> #--#
> print(TIM)
>
>           A terceira função calcula a média:
>
> MD<-mean(tableFE[,3])
> print(MD)
>
>          Porém quando tento juntar as três funções na minha função 
> MYsummary(), para que as três funções sejam executadas 
> concomitantemente, exibindo os três prints ao mesmo tempo não 
> funciona, sendo:
>
> MYsummary<-function(x, db = tableFE) {
>
> c(
>
> ## Função Identificadora da pessoa
> people<-function(x, db = tableFE) {
>      x<-NULL
>      results <- x
>      x<-unique(db[,1])
>      results <- x
>      results
>      print(results)
> }
> ,
> ## Função do período
> timeFE<-function(x, db = tableFE) {
>      x<-NULL
>      minT<-min(db[,2])
>      maxT<-max(db[,2])
>      results <- x
>      x<-cbind(minT,maxT)
>      colnames(x)<-c("start","end")
>      results <- x
>      results
>      print(results)
> }
> ,
> MD=mean(tableFE[,3])
> )
> }
> MYsummary(tableFE)## Não funciona
>
>         Alguém poderia me dar uma luz?
>
> Muito obrigado,
>
>



Mais detalhes sobre a lista de discussão R-br