Múltiplas funções em uma única função

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, -- ====================================================================== 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@yahoo.com.br alexandre.santos@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 ======================================================================

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@yahoo.com.br alexandre.santos@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,
participantes (1)
-
ASANTOS