หลากหลายฟังก์ชั่นในหนึ่งเดียว

ฉันต้องการสร้างหลายฟังก์ชันภายในฟังก์ชันเดียว ในกรณีของฉันฟังก์ชันมีชื่อว่า MYsummary โดยมีสามฟังก์ชันอยู่ภายใน แต่ใช้งานไม่ได้ ฉันรหัสของฉัน:

ชุดข้อมูลประดิษฐ์

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)

ฟังก์ชั่นแรกระบุประชาชนในตัวแปร who:

ระบุคนได้

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

--

print(PER)

ฟังก์ชั่นที่สองให้ช่วงเวลา:

เวลาทำงาน

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)

และอันที่สามคือค่าเฉลี่ย:

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

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

ผลลัพธ์ทั้งสามรายการไม่จับคู่ผลลัพธ์ ดูด้านล่าง:

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

ใครสามารถช่วยฉันได้บ้าง?

ขอบคุณ,

อเล็กซานเดอร์


person Leprechault    schedule 15.01.2016    source แหล่งที่มา


คำตอบ (1)


คุณกำหนดฟังก์ชันภายในเวกเตอร์ของคุณ, และไม่คิดว่าจะใช้ได้

อย่างไรก็ตาม คุณสามารถแก้ไขได้โดยทำดังนี้:

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

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

}

นี่จะเป็นผลลัพธ์ที่คุณกำลังมองหาหรือไม่?

person DeveauP    schedule 15.01.2016