Berbagai fungsi hanya dalam satu

Saya ingin membuat beberapa fungsi di dalam satu fungsi, dalam kasus saya fungsi tersebut bernama MYsummary, dengan tiga fungsi di dalamnya, tetapi tidak berfungsi. Saya kode saya:

Kumpulan data buatan

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)

Fungsi pertama mengidentifikasi masyarakat, dalam variabel who:

Orang-orang yang teridentifikasi

people<-function(x, db = tableFE) {
     x<-NULL
     results <- x
     x<-unique(db[,1])
     results <- x
     results
}
PER<-people(db = tableFE)

--

print(PER)

Fungsi kedua memberikan periode waktu:

Waktu fungsi

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)

dan yang ketiga meannya:

MD<-mean(tableFE[,3])
print(MD)

     But, whem I try to merge the three function in one for create MYsummary to display 

ketiga hasil tersebut, jangan mach hasilnya, lihat dibawah ini:

MYsummary<-function(x, db = tableFE) {

c(

## First function
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)## Doesn't work

Seseorang bisa membantu saya?

Terima kasih,

Alexander


person Leprechault    schedule 15.01.2016    source sumber


Jawaban (1)


Anda mendefinisikan fungsi di dalam vektor Anda, dan menurut saya ini tidak akan berhasil.

Namun Anda dapat mengatasinya dengan melakukan:

MySummary<-function(x){
people<-function(...){}
TIME<-function(...){}
MD<-function(...){}

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

}

Apakah ini hasil yang Anda cari?

person DeveauP    schedule 15.01.2016