Implements Charnes & Cooper's data envelopment analysis (radial & oriented measure).
1 2 
xdata 
Input(s) vector (n by m) 
ydata 
Output(s) vector (n by s) 
rts 
Returns to scale assumption 
orientation 
Orientation of the measurement 
se 
Implements Anderson & Peterson's superefficiency model if 
sg 
Employs secondstage optimization 
date 
Production date (n by 1) 
ncv 
Noncontrollable variable index(binary) for internal NDF (1 by (m+s)) 
env 
Environment index for external NDF (n by 1) 
cv 
Convexity assumption 
o 
DMU index to calc. 

Efficiency score 

Intensity vector 

Input slack 

Output slack 

Input (dual) weight 

Output (dual) weight 

Free (dual) variable 
DongJoon Lim, PhD
Charnes, Abraham, William W. Cooper, and Edwardo Rhodes. "Measuring the efficiency of decision making units." European journal of operational research 2.6 (1978): 429~444.
Charnes, Abraham, William W. Cooper, and Edwardo Rhodes. "Evaluating program and managerial efficiency: an application of data envelopment analysis to program follow through." Management science 27.6 (1981): 668~697.
Banker, Rajiv D., and Richard C. Morey. "Efficiency analysis for exogenously fixed inputs and outputs." Operations Research 34.4 (1986): 513~521.
Ruggiero, John. "On the measurement of technical efficiency in the public sector." European Journal of Operational Research 90.3 (1996): 553~565.
Fried, Harold O., CA Knox Lovell, and Shelton S. Schmidt, eds. The measurement of productive efficiency and productivity growth. Oxford University Press, 2008.
dm.ddf
Distance measure using DDF
dm.dea
Distance measure using DEA
dm.hdf
Distance measure using HDF
dm.sbm
Distance measure using SBM
dm.sf
Distance measure using SF
1 2 3 4 5 6 7 8 9 10 11 12 13  # Reproduce Table 3.9 (p.348) in Fried, H.O. et al.(2008)
# ready
X < data.frame(x1 = c(8, 6, 3, 10, 6, 8, 8, 4),
x2 = c(8, 4.6, 1.9, 9, 3.6, 3.6, 9, 1.9))
Y < data.frame(y1 = c(8, 5, 2, 9, 4.5, 4.5, 7, 2))
C < data.frame(x1 = 0, x2 = 1, y1 = 0)
# go
data.frame(ALL_CRS = dm.dea(X, Y, "crs", "i")$eff,
ALL_VRS = dm.dea(X, Y, "vrs", "i")$eff,
NDF_CRS = dm.dea(X, Y, "crs", "i", ncv = C)$eff,
NDF_VRS = dm.dea(X, Y, "vrs", "i", ncv = C)$eff,
row.names = LETTERS[1 : 8])

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.