[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