📄 mds.dlg
字号:
/*
mds
*! VERSION 1.0.0 24mar2005
*/
VERSION 9.0
INCLUDE _std_glm
DEFINE _dlght 420
INCLUDE header
HELP hlp1, view("help mds")
RESET res1
DIALOG main, label("mds - Multidimensional scaling for two-way data") tabtitle("Model")
BEGIN
TEXT tx_var _lft _top _comb3_1 ., ///
label("Variables:")
VARLIST vl_var @ _ss @ ., ///
label("Variables") allowcat
TEXT tx_id _lft3_3 _top _cwd3_1 ., ///
label("ID variable:")
VARNAME vn_id @ _ss @ ., ///
label("ID variable") option(id)
CHECKBOX ck_unit _lft _ls _iwd ., ///
onclickon(main.vl_unit.enable) ///
onclickoff(main.vl_unit.disable) ///
label("Scale variables to min=0 and max=1: (leave empty for all variables)")
VARLIST vl_unit _indent2 _ss _comb3_3 ., ///
label("Scale variables") option(unit) allowcat
CHECKBOX ck_std _lft _ls _iwd ., ///
option(std) ///
onclickon(main.vl_std.enable) ///
onclickoff(main.vl_std.disable) ///
label("Scale variables to mean=0 and sd=1: (leave empty for all variables)")
VARLIST vl_std _indent2 _ss _comb3_3 ., ///
label("Scale variables") option(std) allowcat
GROUPBOX gb_dist _lft _ls _iwd _ht10, ///
label("(Dis)similarity measure")
RADIO rb_distc _indent _ss 110 ., first ///
label("Continuous") ///
onclickon(program d_continuous_on) ///
onclickoff(program d_continuous_off)
DEFINE holdx @x
RADIO rb_distb +120 @ @ ., last ///
label("Binary") ///
onclickon(program d_binary_on)
LISTBOX lb_distc holdx _ms _comb3_2 _ht4, ///
contents(continuous_dist) ///
onselchangelist(cont_power) ///
value(contin_value)
DEFINE holdy @y
LISTBOX lb_distb @ @ @ _ht4, ///
contents(binary_dist) ///
value(binary_value)
TEXT tx_power _lft3_3 holdy _cwd3_2 ., ///
label("# for L(#) or Lpower(#):")
EDIT en_power _lft3_3 _ss _en7wd ., ///
numonly default(literal "2") ///
label("# for L(#) or Lpower(#)")
GROUPBOX gb_convertsim _lft 295 _iwd _ht2, ///
label("Convert similarity to dissimilarity")
RADIO rb_standard _ilft _ss _cwd2 ., first ///
label("Using: d(ij)=sqrt(s(ii)+s(jj)-2s(ij))") ///
option(s2d(standard))
RADIO rb_oneminus _lft2 @ @ ., last ///
label("Using: d(ij)=1-s(ij)") ///
option(s2d(oneminus))
SPINNER sp_dim _lft +45 _spwd ., ///
label("Configuration dimensions") ///
min(1) ///
max(10000) ///
default(2) ///
option(dimension)
TEXT tx_dim _spsep @ _cksprb ., ///
label("Dimension of the approximating configuration")
CHECKBOX ck_addconstant _lft _ls _iwd ., ///
label("Make distance matrix positive definite") ///
option(addconstant)
END
INCLUDE byifin
DIALOG report, tabtitle("Reporting")
BEGIN
SPINNER sp_neigen _lft _top _spwd ., ///
label("Dimensions") ///
min(1) ///
max(10000) ///
default(10) ///
option(neigen)
TEXT tx_neigen _spsep @ _spr ., ///
label("Maximum number of eigenvalues to display")
CHECKBOX ck_config _lft _ls _iwd ., ///
label("Display table with configuration coordinates") ///
option(config)
CHECKBOX ck_noplot @ _ms @ ., ///
label("Suppress configuration plot") ///
option(noplot)
END
INCLUDE _cl_dist_list
PROGRAM d_binary_on
BEGIN
call main.lb_distb.show
call main.lb_distc.hide
call script power_off
END
PROGRAM d_continuous_on
BEGIN
call main.lb_distb.hide
call main.lb_distc.show
call main.lb_distc.withvalue main.lb_distc.setvalue "@"
END
PROGRAM d_continuous_off
BEGIN
call main.rb_standard.enable
call main.rb_oneminus.enable
call main.gb_convertsim.enable
END
SCRIPT power_on
BEGIN
main.tx_power.show
main.en_power.show
program convertsim
END
SCRIPT power_off
BEGIN
main.tx_power.hide
main.en_power.hide
program convertsim
END
PROGRAM convertsim
BEGIN
if main.rb_distc {
if main.lb_distc.equals("correlation") | main.lb_distc.equals("angular") {
call main.rb_standard.enable
call main.rb_oneminus.enable
call main.gb_convertsim.enable
}
if ! (main.lb_distc.equals("correlation") | main.lb_distc.equals("angular")) {
call main.rb_standard.disable
call main.rb_oneminus.disable
call main.gb_convertsim.disable
}
}
END
PROGRAM unit_output
BEGIN
put main.vl_unit
END
PROGRAM std_output
BEGIN
put main.vl_std
END
PROGRAM command
BEGIN
allowxi
INCLUDE _by_pr
put "mds "
varlist main.vl_var
INCLUDE _ifin_pr
beginoptions
require main.vn_id
optionarg main.vn_id
if main.ck_unit {
put "unit"
if main.vl_unit {
put "("
put /program unit_output
put ")"
}
put " "
}
if main.ck_std {
put "std"
if main.vl_std {
put "("
put /program std_output
put ")"
}
put " "
}
INCLUDE _cl_dist_pr
option main.rb_standard
option main.rb_oneminus
optionarg /hidedefault main.sp_dim
option main.ck_addconstant
optionarg /hidedefault report.sp_neigen
option report.ck_config
option report.ck_noplot
endoptions
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -