[R-br] Múltiplas funções em uma única função
ASANTOS
alexandresantosbr em yahoo.com.br
Sexta Janeiro 15 08:47:48 BRST 2016
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 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
======================================================================
Mais detalhes sobre a lista de discussão R-br